Simplexml получает узел по атрибуту

У меня есть xml-файл:

<?xml version="1.0" ?> <xml> <opis lang="en">My text</opis> <opis lang="cz">My text2</opis> </xml> 

Я хочу получить «Мой текст2» – поэтому узел, где атрибут lang является «cz»:

 $xml = simplexml_load_file($fileName); $result = $xml->xpath('//xml/opis[@lang="cz"]') 

но вместо значения я получаю:

 array(1) ( [0] => SimpleXMLElement object { @attributes => array(1) ( [lang] => (string) cz ) } )) 

Попробуйте использовать DomDocument:

 $xml = new DomDocument; $xml->load('yourFile'); $xpath = new DomXpath($xml); foreach ($xpath->query('//xml/opis[@lang="cz"]') as $rowNode) { echo $rowNode->nodeValue; // will be 'this item' } 

Вы можете получить значение следующим образом:

 $xml = simplexml_load_file($fileName); $result = $xml->xpath('//xml/opis[@lang="cz"]'); foreach($result as $res) { echo $res; }