PHP SimpleXML
PHP SimpleXML handles the most common XML tasks, while other tasks are handled by other extensions.
What is PHP SimpleXML?
SimpleXML is a new feature in PHP 5.
The SimpleXML extension provides a simple way to get the names and text of XML elements.
Compared to DOM or Expat parsers, SimpleXML can read text data from XML elements with just a few lines of code.
SimpleXML can convert XML documents (or XML strings) into objects, such as:
Elements are converted into single properties of the SimpleXMLElement object. When multiple elements exist at the same level, they are placed in an array.
Attributes are accessed using associative arrays, where the index corresponds to the attribute name.
Text inside elements is converted into strings. If an element has multiple text nodes, they are arranged in the order they are found.
SimpleXML is very quick to use when performing basic tasks such as:
Reading/extracting data from XML files/strings
Editing text nodes or attributes
However, when dealing with advanced XML, such as namespaces, it is better to use Expat parser or XML DOM.
Installation
Starting from PHP 5, SimpleXML functions are part of the PHP core. No installation is required to use these functions.
PHP SimpleXML Examples
Suppose we have the following XML file, "note.xml":
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Now we want to output different information from the above XML file:
Example 1
Output the keys and elements of the $xml variable (which is a SimpleXMLElement object):
<?php
$xml = simplexml_load_file("note.xml");
print_r($xml);
?>
The above code will output:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
Example 2
Output the data of each element in the XML file:
<?php
$xml = simplexml_load_file("note.xml");
echo $xml->to . "<br>";
echo $xml->from . "<br>";
echo $xml->heading . "<br>";
echo $xml->body;
?>
The above code will output:
Tove
Jani
Reminder
Don't forget me this weekend!
Example 3
Output the element names and data of each child node:
<?php
$xml = simplexml_load_file("note.xml");
echo $xml->getName() . "<br>";
foreach ($xml->children() as $child) {
echo $child->getName() . ": " . $child . "<br>";
}
?>
The above code will output:
note
to: Tove
from: Jani
heading: Reminder
body: Don't forget me this weekend!
More Information on PHP SimpleXML
For more information on PHP SimpleXML functions, please visit our PHP SimpleXML Reference Manual.