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