PHP Read a XML document with DOMDocument


Example

Similarly to the SimpleXML, you can use DOMDocument to parse XML from a string or from a XML file

1. From a string

$doc = new DOMDocument();
$doc->loadXML($string);

2. From a file

$doc = new DOMDocument();
$doc->load('books.xml');// use the actual file path. Absolute or relative

Example of parsing

Considering the following XML:

<?xml version="1.0" encoding="UTF-8"?>
<books>
   <book>
      <name>PHP - An Introduction</name>
      <price>$5.95</price>
      <id>1</id>
   </book>
   <book>
      <name>PHP - Advanced</name>
      <price>$25.00</price>
      <id>2</id>
   </book>
</books>

This is a example code to parse it

$books = $doc->getElementsByTagName('book');
foreach ($books as $book) {
    $title = $book->getElementsByTagName('name')->item(0)->nodeValue;
    $price = $book->getElementsByTagName('price')->item(0)->nodeValue;
    $id = $book->getElementsByTagName('id')->item(0)->nodeValue;
    print_r ("The title of the book $id is $title and it costs $price." . "\n");
}

This will output:

The title of the book 1 is PHP - An Introduction and it costs $5.95.

The title of the book 2 is PHP - Advanced and it costs $25.00.