Using XPath with DOM in a more complicated example : DomDocument « XML « PHP

Using XPath with DOM in a more complicated example

$dom = new DOMDocument;
$xpath = new DOMXPath($dom);
$person = $xpath->query('/address-book/person');

foreach ($person as $p) {
    $fn = $xpath->query('firstname', $p);
    $firstname = $fn->item(0)->firstChild->nodeValue;

    $ln = $xpath->query('lastname', $p);
    $lastname = $ln->item(0)->firstChild->nodeValue;

    print "$firstname $lastname\n";
<?xml version="1.0"?>
    <person id="1">
        <city>New York</city>

    <person id="2">
        <city>San Francisco</city>

Related examples in the same category

1.Append children
2.Constructing an XML Document with the DOM Functions
3.Create element with DomDocument
4.Create the script that uses the DOM extension to create a list of title and book_id attributes.
5.DOM editing with DomDocument
6.Creating and Setting Attributes
7.Loading from server
8.Loads the content of this file into a DOM object tree.
9.Get element by tag name
10.Parsing XML
11.Sample Transformation File test-php5.php
12.Validating an XML document
13.Using CDATA sections, or character data sections
14.Using DOM to Generate Markup
15.Use the createTextNode() method to add multiple text strings to a body element in an HTML document.
16.Traversing a Tree of XML Nodes Using Recursion
17.Traversing a Tree of XML Nodes Using On-Demand Functions
18.Remove the creation and appending of attributes and simply assign the needed attributes to the elements
19.Return a list of nodes that can be examined one at the time in a foreach() loop