Parse XML in PHP – Introduction

by Vincy. Last modified on July 14th, 2022.

In PHP, parsing XML files is done using different extensions available. Using these extensions we can access, modify, validate and do much more things on an XML document.

Parsing techniques used by these PHP XML parser extensions are, tree-based, stream-based and event-based parsing. In this article, we are going to see an introduction to these PHP extensions.

XML Parser Extensions

The following listing shows XML parser extensions available in PHP core. All these extensions require libxml extension and which is enabled by default.

  1. SimpleXML Parser
  2. DOM Parser
  3. XMLParser
  4. XMLReader

1. SimpleXML Parser

  • SimpleXML parser is a tree-based parser.
  • As rightly named, this parser is used to parse simple XML files (not too lengthy and without complex node structure).
  • It converts XML file and returns corresponding SimpleXMLElement object.
  • We can load XML file or document as string for SimpleXML functions. For example, simplexml_load_file() accepts XML file path and simplexml_load_string() requires string.

2. DOM Parser

  • DOM parser extension in PHP is used to handle high complex XML files.
  • It is used as an interface to access and modify given XML documents.
  • This is also a tree-based parser like SimpleXML.
  • As of PHP 5, it is upgraded from an older version of DOM with domxml.
  • DOM parser extension is using utf-8 character encoding.

Note:

Both SimpleXML and DOM parsers are interoperable. Meaning that the DOM function will accept a SimpleXML object array to convert it into DOM format. Similarly, the SimpleXML function will accept DOM formatted XML documents to convert into an object array.

3. XML Parser

  • This is an event-based SAX parser.
  • It is faster than the above two since is not load the whole XML document into memory to parse.
  • It creates XML parsers and implements XML manipulation classes of the Expat parser library.
  • It supports three types of character encoding ISO-8859-1, US-ASCII, and UTF-8.
  • While using this extension, we need to create an XMLParser instance (parser handle) to access its member functions.
  • This parser extension can work with namespaced XML.

4. XML Reader

  • It is a stream-based parser and is also known as a pull parser since it pulls data from a given XML file.
  • It is the best choice of PHP XML extensions for reading an XML document, why because it,
    • is faster
    • works with a high complex XML document
    • supports XML validation
  • We should have PHP version 5.1 and above to use this extension.

Leave a Reply

Your email address will not be published. Required fields are marked *

↑ Back to Top

Share this page