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