簡體   English   中英

php xpath獲取屬性等於的節點

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

編輯1

array
  0 => 
    object(SimpleXMLElement)[41]
      public '@attributes' => 
        array
          'myval' => string 'a' (length=40)

編輯2

    $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.

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