Скажем, мой XML выглядит так:
<record> <row name="title">this item</row> <row name="url">this url</row> </record>
Теперь я делаю что-то вроде этого:
$xml = new DOMDocument(); $xml->load('xmlfile.xml'); echo $xml->getElementByTagName('row')->item(0)->attributes->getNamedItem('title')->nodeValue;
Но это только дает мне:
ВНИМАНИЕ. Пытается получить свойство идентификатора объекта без объекта
Кто-нибудь знает, как получить значение узла, где атрибут «name» имеет значение «title»?
Пытаться:
$xml = new DomDocument; $xml->loadXml(' <record> <row name="title">this item</row> <row name="url">this url</row> </record> '); $xpath = new DomXpath($xml); // traverse all results foreach ($xpath->query('//row[@name="title"]') as $rowNode) { echo $rowNode->nodeValue; // will be 'this item' } // Or access the first result directly $rowNode = $xpath->query('//row[@name="title"][1]')->item(0); if ($rowNode instanceof DomElement) { echo $rowNode->nodeValue; }
foreach ($xml->getElementsByTagName('row') as $element) { if ($element->getAttribute('name') == "title") { echo $element->nodeValue; } }
$xpath = new DOMXPath( $xml ); $val = $xpath->query( '//row[@name="title"]' )->item(0)->nodeValue;