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:
|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.
|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.