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: Creating New XML Documents

If you want to create a new XML document, you have two choices. Since XML is text, you can always print it yourself using print. The other option is to use DOM.

With DOM you assemble an entire XML document by calling methods in PHP. When you’re done, tell DOM to convert your DOM object into XML.

At first, it is much easier to create XML yourself and avoid DOM. Just as extracting information from a DOM object requires multiple steps, adding new nodes to a DOM tree isn’t easy. However, using DOM does have some benefits:

  • Your XML is always well-formed and without syntax errors.

  • DOM correctly outputs your document in any one of many different character encodings.

  • You can easily validate your object against a schema.

SimpleXML does not allow you to create XML documents.

Creating an Address Book

The code examples in this section create the address book from Example 5-1 and populate it with the first entry.

PHP 4 and DOM

Example 5-19 shows how to create an address book in PHP 4.

Example 5-19. Creating XML with PHP 4 and DOM

// create a new document $dom = domxml_new_doc('1.0'); $people = $dom->append_child($dom->create_element('address-book')); $person = $people->append_child($dom->create_element('person')); $person->set_attribute('id', 1); $person->append_child($dom->create_comment('Rasmus Lerdorf')); $e = $person->append_child($dom->create_element('firstname')); $e->append_child($dom->create_text_node('Rasmus')); $e = $person->append_child($dom->create_element('lastname')); ...

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