[英]xpath query to xpath result of query
例如,我們有這個xml:
<body>
<a>
<b>
<c>hello</c>
<c>world</c>
</b>
</a>
<a>
<b>
<c>another hello</c>
<c>world</c>
</b>
</a>
</body>
通過Xpath查詢,我們可以找到所有“B”-tags。 但是,我們需要在每個找到的“B”標簽中找到所有“C”標簽。 我寫了這段代碼:
$dom = new DOMDocument();
$dom->loadXML($xml);
$xpath = new DOMXPath($dom);
$btags = $xpath->query("//b");
foreach ($btags as $b)
{
$ctags = $xpath->query("/b/c", $b);
foreach ($ctags as $c) {
echo $c->nodeValue;
}
}
但它不起作用。 用XPath查詢可以做到這一點嗎?
對於你的第二個XPath,請嘗試這樣: $ctags = $xpath->query("c", $b);
第二個XPath已經相對於'b'節點...如果我沒有弄錯,PHP XPath語句中的相對路徑要求省略前導'/'。
羅伯特惠沒有錯
FYI //b
選擇文檔中任何位置類型b的所有元素,但使用/
表示選擇根節點,因此/b/c
嘗試選擇具有子節點c
根節點c
。 根節點是body元素。
到達第二個查詢時,您已經處於'b'元素。 您的代碼正在尋找的是“// b / b / c”。 請嘗試在第二個查詢中使用“/ c”。 如果你不打算用“b”做任何事情,你也可以用“// b / c”將它移動到一個查詢中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.