[英]php xpath get node where attribute equals
我有一個xml如何在levelone
中獲取具有名為myatt
的屬性的節點,其值為a
,然后訪問它的myval
。 我嘗試引用其他帖子以使其工作,但它似乎沒有工作我的xpath有什么問題
$this->myXmlObj->xpath("//levelone[myfield[attributes/myatt='a]]]"));
<myxml>
<levelone>
<myfield myatt="a" myval="aa" />
<myfield myatt="b" myval="bb" />
</levelone>
<leveltwo>
<myfield myatt="c" myval="dd" />
<myfield myatt="c" myval="dd" />
</leveltwo>
</myxml>
array
0 =>
object(SimpleXMLElement)[41]
public '@attributes' =>
array
'myval' => string 'a' (length=40)
$myVar = $this->myXmlObj->xpath("//levelone/myfield[@myatt='a']");
$myOutput = ((string)$myVar[0]->attributes()->myVal;
XPATH中的屬性使用@attr
語法引用。 因此,您可以使用以下xpath檢索aa
// LEVELONE / MyField的[@邁亞特= 'A'] / @設為myVal
這意味着,抓住屬性myatt
等於'a'
所有myfield
元素。 然后,從中選擇myval
屬性的值。 請注意,這可能是多個結果。
測試XPATH表達式的一個方便的地方是http://chris.photobooks.com/xml/default.htm 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.