Hoi allemaal,

Ik heb een vraag over simple html dom, over het uitlezen van een XML-feed. Nu kun je natuurlijk met:
$title = $node->getElementsByTagName('name')->item(0)->nodeValue;


bijvoorbeeld de titel laten weergeven. Maar, stel, hoe zou je dan bij onderstaand stukje:

<fields>
<field name="category">Food</field>
<field name="color">Red</field>
<field name="image">None</field>
</fields>


'Red' kunnen laten weergeven (dus field name color)? heb al gegoogled, maar daar wordt ik niet echt wijzer uit omdat ik niet weet of ik dan überhaupt getElementsByTagName moet hebben, of iets anders.
XPath is minder simpel, maar meer flexibel.
<?php
$data = <<<XML
<?xml version='1.0' standalone='yes'?>
<fields>
<field name="category">Food</field>
<field name="color">Red</field>
<field name="image">None</field>
</fields>
XML;

$dom = new DOMDocument;
$dom->loadXML($data);
$xpath = new DOMXPath($dom);
print $xpath->query('/fields/field[@name="color"]')[0]->nodeValue;
?>

Zie:
- https://www.php.net/manual/en/book.dom.php
- https://www.w3schools.com/xml/xpath_intro.asp

Reageren