2017-07-04 13 views
0

私はこのXMLを処理するxmlファイルとPHPスクリプトを持っています。スクリプトがタグを見つけられないのはなぜですか? XPathは警告で失敗している理由:XPathでタグが見つからないのはなぜですか?

PHP Warning: DOMXPath::query(): Invalid predicate in test.php on line 7 
PHP Warning: DOMXPath::query(): Invalid expression in test.php on line 7 
PHP Warning: Invalid argument supplied for foreach() in test.php on line 9 

doc.xml

<?xml version="1.0" encoding="UTF-8"?> 
<rootTag> 
    <div id="tag-id"></div> 
    <div id="tag-id"></div> 
    <div id="tag-id"></div> 
    <div id="tag-id"></div> 
    <div id="tag-id"></div> 
</rootTag> 

test.phpを

<?php 

$doc = new DOMDocument(); 
$doc->load('./doc.xml'); 

$xpath = new DOMXPath($doc); 
$tags = $xpath->query('//div[@id="tag-id"'); 

foreach ($tags as $node) { 
    print($node->nodeName); 
} 

?> 
+2

あなたは ']'あなたのxpathで不足している: ']' // divの[ID @ = "タグ-ID" を – SomeDude

答えて

1

さて、あなたのクエリは、ほぼ正しいです。最後に "]"という文字列を閉じることを忘れてしまった。

それがあるべき:代わりに

$tags = $xpath->query('//div[@id="tag-id"]'); 

$tags = $xpath->query('//div[@id="tag-id"'); 
関連する問題