2 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
您的問(wèn)題是您使用的 xpath 是絕對(duì)路徑(以 開(kāi)頭/),因此您從子節(jié)點(diǎn)調(diào)用它這一事實(shí)沒(méi)有任何效果。您應(yīng)該使用相對(duì)路徑,在這種情況下,要么簡(jiǎn)單地ArticleTitle就足夠了,要么.//ArticleTitle允許Article和之間的其他節(jié)點(diǎn)ArticleTitle。例如:
foreach ($xml->Article as $Article){
? ? $title = $Article->xpath('ArticleTitle');
? ? echo $title[0];
}
foreach ($xml->Article as $Article){
? ? $title = $Article->xpath('.//ArticleTitle');
? ? echo $title[0];
}
兩種情況下的輸出都是:
First Book
Second Book

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
這也適用于您原來(lái)的 XPath 表達(dá)式:
$xml = <<<'XML'
<Articles>
<Article>
<ArticleTitle>First Book</ArticleTitle>
</Article>
<Article>
<ArticleTitle>Second Book</ArticleTitle>
</Article>
</Articles>
XML;
$document = new DOMDocument();
$document->loadXML($xml);
$xpath = new DOMXpath($document);
$elements = $xpath->query('//ArticleTitle');
foreach($elements as $element)
echo ($element->nodeValue), "\n";
?>
輸出 :
First Book
Second Book
- 2 回答
- 0 關(guān)注
- 132 瀏覽
添加回答
舉報(bào)