いつも、大変お世話になっております。
大量の情報を有するXML文書においてDOM(getElementsByTagName)を使用して指定するノードを取得しようとしております。
PHP
1$xml =file_get_contents("Z_xbrl/XXXX/XXXX/XXXX.xbrl"); 2 3$dom = new DOMDocument('1.0', 'UTF-8'); 4$dom->preserveWhiteSpace = false; 5$dom->formatOutput = true; 6$dom->loadXML($xml); 7$root = $dom->getElementsByTagName("xbrl"); 8var_dump($root); 9//出力結果 10//object(DOMNodeList)#3 (1) { ["length"]=> int(0) }
上記の通り、出力の結果は空のオブジェクトが返ってきてしまいます。
ここで、
データが大量だったのでxbrlのタグだけを抜粋して、同じ手続を実施したところ、正しくノードを取得することができました。
量は10万行以上のコードで、エディターで閲覧していてもエディターが固まるほどです。。
従って、xmlのコード自体や上記のphpのコードには問題がないと思われるのですが、なぜか取得することできません。
あまりにもloadするXMLの量が大きすぎる場合には、適切にDOMでノードが取得できないというケース等ありえるのでしょうか?
普通に考えれば、object(DOMNodeList)#3 (1) { ["length"]=> int(0) }を返さずにerrorを投げてくるはずなのですが、他に思い当たる原因がなく、途方にくれてたため、お伺いさせて頂きました。
宜しくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/14 09:01