What is an xml parser in php?


What is XML?

The XML language is a way to structure data for sharing across websites.

Several web technologies like RSS Feeds and Podcasts are written in XML.

XML is easy to create. It looks a lot like HTML, except that you make up your own tags.

If you want to learn more about XML, please visit our XML tutorial.


What is an XML Parser?

To read and update, create and manipulate an XML document, you will need an XML parser.

In PHP there are two major types of XML parsers:

  • Tree-Based Parsers
  • Event-Based Parsers

Tree-Based Parsers

Tree-based parsers holds the entire document in Memory and transforms the XML document into a Tree structure. It analyzes the whole document, and provides access to the Tree elements (DOM).

This type of parser is a better option for smaller XML documents, but not for large XML document as it causes major performance issues.

Example of tree-based parsers:

  • SimpleXML
  • DOM

Event-Based Parsers

Event-based parsers do not hold the entire document in Memory, instead, they read in one node at a time and allow you to interact with in real time. Once you move onto the next node, the old one is thrown away.

This type of parser is well suited for large XML documents. It parses faster and consumes less memory.

Example of event-based parsers:

  • XMLReader
  • XML Expat Parser



SimpleXML is a PHP extension that allows us to easily manipulate and get XML data.


The SimpleXML Parser

SimpleXML is a tree-based parser.

SimpleXML provides an easy way of getting an element's name, attributes and textual content if you know the XML document's structure or layout.

SimpleXML turns an XML document into a data structure you can iterate through like a collection of arrays and objects.

Compared to DOM or the Expat parser, SimpleXML takes a fewer lines of code to read text data from an element.


Installation

From PHP 5, the SimpleXML functions are part of the PHP core. No installation is required to use these functions.


PHP SimpleXML - Read From String

The PHP simplexml_load_string() function is used to read XML data from a string.

Assume we have a variable that contains XML data, like this:

$myXMLData =
"

Tove
Jani
Reminder
Don't forget me this weekend!
";

The example below shows how to use the simplexml_load_string() function to read XML data from a string:

Example

$myXMLData =
"

Tove
Jani
Reminder
Don't forget me this weekend!
";

$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
print_r($xml);
?>

Run example »

The output of the code above will be:

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )

Error Handling Tip: Use the libxml functionality to retrieve all XML errors when loading the document and then iterate over the errors. The following example tries to load a broken XML string:

Example

libxml_use_internal_errors(true);
$myXMLData =
"

John Doe

";

$xml = simplexml_load_string($myXMLData);
if ($xml === false) {
  echo "Failed loading XML: ";
  foreach(libxml_get_errors() as $error) {
    echo "
", $error->message;
  }
} else {
  print_r($xml);
}
?>

Run example »

The output of the code above will be:

Failed loading XML:
Opening and ending tag mismatch: user line 3 and wronguser
Opening and ending tag mismatch: email line 4 and wrongemail



PHP SimpleXML - Read From File

The PHP simplexml_load_file() function is used to read XML data from a file.

Assume we have an XML file called "note.xml", that looks like this:



  Tove
  Jani
  Reminder
  Don't forget me this weekend!

The example below shows how to use the simplexml_load_file() function to read XML data from a file:

Example

$xml=simplexml_load_file("note.xml") or die("Error: Cannot create object");
print_r($xml);
?>

Run example »

The output of the code above will be:

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )

Tip: The next chapter shows how to get/retrieve node values from an XML file with SimpleXML!


More PHP SimpleXML

For more information about the PHP SimpleXML functions, visit our PHP SimpleXML Reference.



What does XML parser do?

XML parser is a software library or a package that provides interface for client applications to work with XML documents. It checks for proper format of the XML document and may also validate the XML documents. Modern day browsers have built-in XML parsers. The goal of a parser is to transform XML into a readable code.

How do we parse XML in PHP?

PHP SimpleXML Parser.
The SimpleXML Parser. SimpleXML is a tree-based parser. ... .
Installation. From PHP 5, the SimpleXML functions are part of the PHP core. ... .
PHP SimpleXML - Read From String. The PHP simplexml_load_string() function is used to read XML data from a string. ... .
PHP SimpleXML - Read From File. ... .
More PHP SimpleXML..

What are XML parsers and its types?

An XML parser is a software library or package that provides interfaces for client applications to work with an XML document. The XML Parser is designed to read the XML and create a way for programs to use XML. XML parser validates the document and check that the document is well formatted.

What are the two types of XML parsers?

In PHP there are two major types of XML parsers: Tree-Based Parsers. Event-Based Parsers.