簡體   English   中英

XPath 按值獲取節點

[英]XPath get node by value

我有這個 XML:

<root>
  <experiment accessCount="1" downloadCount="1">alfa</experiment>
  <experiment accessCount="1" downloadCount="1">beta</experiment>
</root>

我想檢測是否存在值 alfa 的節點實驗。 但是這個 PHP 代碼正在返回給我所有的值。

    $this->xml = simplexml_load_file("data/stats.xml") or die("Error: Cannot create object");
    $node = $this->xml->xpath("/root[experiment='alfa']");

我哪里錯了?

你的 XPath,

    /root[experiment='alfa']

說:

選擇包含字符串值等於'alfa'experiment元素的root元素。

您的示例中有一個這樣的root元素,它包含兩個experimental元素。


這個 XPath,

    /root/experiment[.='alfa']

說:

選擇字符串值等於'alfa'experiment元素。

並將選擇您要尋找的一個experiment元素。

您可以使用text()查詢節點值:

$node = $this->xml->xpath("/root/experiment[text()='alfa']");

請試試這個代碼

/root/experiment[matches(.,'alfa')]

絕對有效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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