Cyber Week

Save big!

All courses under $5 - for a limited time!

Code has been added to clipboard!

PHP Libxml: Master the Usage, Functions and Constants

Reading time 3 min
Published Aug 8, 2017
Updated Oct 15, 2019

libxml is a library (hence lib) of tools that let you work with parser functions in PHP. The newest version, called libxml2, was introduced at the beginning of 2019. In this article, we will review its main functions.

While PHP libxml extension is free to download and use, it does not come inbuilt in PHP. It means that you won't be able to use any of the functions without the required extension.

PHP libxml: Main Tips

  • PHP libxml functions and constants are meant for parsing XML documents. They should be used combined with functions associated with DOM, XSLT, and SimpleXML.
  • To use these functions, you must download the libxml2 package from the official website.

List of Functions

After downloading the PHP libxml package, you are welcome to use the following functions:

Function Description
libxml_clear_errors() Used for clearing libxml error buffer
libxml_get_errors() Used for retrieving array of errors
libxml_get_last_error() Used for retrieving last error from libxml
libxml_set_streams_context() Used for setting streams context for following libxml document load / write
libxml_use_internal_errors() Used for disabling libxml errors and allowing user to fetch error info as needed
Theory is great, but we recommend digging deeper!

Predefined Constants Explained

The table below indicates the predefined constants that the extension provides. Of course, you have to compile the extension into PHP before that. Additionally, it is possible to load the extension at runtime.

Function Description
LIBXML_COMPACT Used for setting the optimization for small node allocation. May improve application performance
LIBXML_DTDATTR Used for setting default DTD attributes
LIBXML_DTDLOAD Used for loading external subsets
LIBXML_DTDVALID Used for validating with the DTD
LIBXML_NOBLANKS Used for removing blank nodes
LIBXML_NOCDATA Used for setting CDATA as nodes of text
LIBXML_NOEMPTYTAG Used for changing tags that are empty (e.g. <br/> to <br></br>), only usable with DOMDocument->save() or saveXML()
LIBXML_NOENT Used for substituting entities
LIBXML_NOERROR Sets parser not to show error reports
LIBXML_NONET Used for stopping network access while loading files
LIBXML_NOWARNING Sets parser not to show warning reports
LIBXML_NOXMLDECL Used for dropping the XML declaration while saving documents
LIBXML_NSCLEAN Used for removing excess namespace declarations
LIBXML_XINCLUDE Used for using XInclude substitute
LIBXML_ERR_ERROR Used for getting recoverable errors
LIBXML_ERR_FATAL Used for getting fatal errors
LIBXML_ERR_NONE Used for getting no errors
LIBXML_ERR_WARNING Used for getting simple warnings
LIBXML_VERSION Used for getting libxml version (e.g. 20615)
LIBXML_DOTTED_VERSION Used for getting libxml version dotted (e.g. 2.6.0 or 2.6.1)

PHP libxml: Summary

  • You can use PHP libxml with DOM, XSLT and SimpleXML methods.
  • libmxl functions are not inbuilt in PHP. You have to download and install them separately.
  • In 2019, libxml2 was introduced.