下記のようなDOMXpathで特定のタグを抽出したいのですが、ix:nonNumericタグが取得できません。 $xpath->query('//h1');であれば正しく取得されるのですが、このようにXMLの特殊なタグはDOMXpathでは取得できないのでしょうか?
うまく取得する方法があればアドバイスをください。
宜しくお願いいたします。
php
1<?php 2$url="http://xxx"; 3$html=file_get_contents($url); 4 5$dom = new DOMDocument('1.0', 'UTF-8'); 6$html = mb_convert_encoding($html, "HTML-ENTITIES", 'auto'); 7@$dom->loadHTML($html); 8$xpath = new DOMXPath($dom); 9$xpath->registerNamespace("php", "http://php.net/xpath"); 10$xpath->registerPHPFunctions(); 11 12$xi = $xpath->query('//ix:nonNumeric'); 13var_dump($xi); 14
XML
1http://xxxの中身 2 3<?xml version="1.0" encoding="utf-8"?> 4<html version="-//XBRL International//DTD XHTML Inline XBRL 1.0//EN" xmlns="http://www.w3.org/1999/xhtml" xmlns:ix="http://www.xbrl.org/2008/inlineXBRL" xmlns:ixt="http:/ 5<!--中略--> 6<h1>3.FS</h1><ix:nonNumeric name="jpsps_cor:BalanceSheetTextBlock" contextRef="CurrentYearDuration" escape="true"><h2>(1)貸借対照表</h2><div><table style="table-layout: fixed; width: 647.989990234376px" cellpadding="0" cellspacing="0"><colgroup><col style="width: 7<!--後略-->
また、Xpathではなくとも通常のDOM操作でもこのようなタグを拾えません、、
XMLで使用されるような特殊なタグは取得できないのでしょうか。。。
php
1$dom = new DOMDocument('1.0', 'UTF-8'); 2$dom->preserveWhiteSpace = false; 3$dom->formatOutput = true; 4$dom->load($url); 5 6$root = $dom->getElementsByTagName("ix");//ix:nonNumericでもだめです 7var_dump($root);
回答2件
あなたの回答
tips
プレビュー