簡體   English   中英

xpath查詢到xpath查詢結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM