5.2 Installing XML and XSLT Support

PHP 5 uses libxml2 and libxslt as the underlying foundation for its XML support. By hooking into these tools, PHP developers don't need to write their own XML processors, which gives them more time to work on PHP.

Originally written for the GNOME project, libxml2 is a standalone library that can be used by other programs, including languages like PHP. Written in C, libxml2 runs on Linux, Windows, Mac OS X, FreeBSD, and many other operating systems. The official libxml2 web site is at http://www.xmlsoft.org/.

libxml2 offers several benefits over other XML parsers: speed, licensing, and standards. While other XML parsers might be faster in certain specialized circumstances, libxml2 is overall one of the fastest parsing engines available.

libxml2 also implements most XML specifications. In addition to the basic XML standard, libxml2 also supports XML Namespaces, XPath, XPointer, XInclude, XML Catalogs, Relax NG, and XML Schemas Part 2. Additional standards are being added on a regular basis. libxml2 also integrates with libxslt to support XSLT.

PHP 5 requires libxml2 2.5.10 or higher. If you are running Unix or Mac OS X, find the version of libxml2 on your machine by running xml2-config --version:

% xml2-config --version


If this program cannot be found or the version number is lower than 2.5.10, you must install (or upgrade) libxml2 on your machine. The latest version of libxml2 is available at http://www.xmlsoft.org/downloads.html.

By default, PHP 5 enables DOM, SAX, and SimpleXML; however, if your copy of libxml2 is in a nonstandard location, use --with-libxml-dir=DIR to help PHP during the configuration process.

For instance, on Mac OS X, the fink package manager installs files in /sw by default:


PHP 5 also uses libxslt for XSLT processing. Check your version by running xslt-config --version:

% xslt-config --version


PHP requires a minimum version of libxslt 1.0.18. It does not automatically enable XSLT support; you must add it yourself:


You can also set an installation directory for libxslt:


Windows distributions of PHP come with libxml2 and libxslt DLLs. However, to enable XSLT support, uncomment this line from your php.ini file by removing the leading semicolon (;):