php xpath получает узел, где атрибут равен

У меня есть 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; 

Solutions Collecting From Web of "php xpath получает узел, где атрибут равен"

Атрибуты в XPATH ссылаются на синтаксис @attr . Таким образом, вы можете получить aa со следующим xpath

// LevelOne / MyField [@ Майат = 'а'] / @ myval

Это означает, что захватите все элементы myfield , у которых атрибут myatt равен 'a' . Затем из них выберите значение атрибутов myval . Обратите внимание, что это может быть несколько результатов.

Удобное место для тестирования выражений XPATH находится по адресу http://chris.photobooks.com/xml/default.htm .