O'Reilly logo

Upgrading to PHP 5 by Adam Trachtenberg

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Before and After: Reading XML into a Tree

The most common XML task is reading an XML document and printing out its contents. DOM and SimpleXML store XML documents in trees. This allows you to easily maneuver though the document to find information because if you know where your node is located, you can access it directly.

Reading an Address Book

The following programs take an XML document, read it into a tree, and then find a set of nodes. They all use the example address book from Example 5-1 as their data, search for all the people nodes, and then print out everyone’s first and last name.

The first two versions use DOM, one written in PHP 4 and the other in PHP 5. There is also a SimpleXML version, which is considerably shorter.

PHP 4 and DOM

Example 5-5 demonstrates the PHP 4 DOM extension.

Example 5-5. Reading XML with PHP 4 and DOM

$dom = domxml_open_file('address-book.xml');

foreach ($dom->get_elements_by_tagname('person') as $person) {
    $firstname = $person->get_elements_by_tagname('firstname');
    $firstname_text = $firstname[0]->first_child( );
    $firstname_text_value = $firstname_text->node_value( );

    $lastname = $person->get_elements_by_tagname('lastname'));
    $lastname_text = $lastname[0]->first_child( );
    $lastname_text_value = $lastname_text->node_value( );

    print "$firstname_text_value $lastname_text_value\n";
}

Rasmus Lerdorf
                     Zeev Suraski

Under PHP 4, DOM method names use underscores ( _ ) to separate words, such as get_elements_by_tagname( ) and first_child( ).

To find all elements ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required