CXXVI. XSL functions


The XSL extension implements the XSL standard, performing XSLT transformations using the libxslt library


This extension uses libxslt which can be found at libxslt version 1.0.18 or greater is required.


PHP 5 includes the XSL extension by default and can be enabled by adding the argument --with-xsl[=DIR] to your configure line. DIR is the libxslt installation directory.


In this small tutorial we will learn how to transform an XML document into HTML.

Example 1. A simple XSL tree

<xsl:stylesheet version="1.0" xmlns:xsl="">
 <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
 <xsl:template match="collection">
  Hey! Welcome to my sweet CD collection!
 <xsl:template match="cd">
  <h1><xsl:value-of select="title"/></h1>
  <h2>by <xsl:value-of select="artist"/></h2>
  <h3> - <xsl:value-of select="year"/></h3>

Example 2. Corresponding XML tree

  <title>PHP Rock</title>
  <artist>Joe Coder</artist>
  <title>Squashing Typos on a Winter's Eve</title>

Example 3. Making XML into HTML

The following PHP code uses the XML and XSL extensions to transform XML into presentable HTML.

/* Load the two XML sources */
$xml = new DomDocument; // from /ext/dom

$xsl = new DomDocument;

/* Configure the transformer */
$proc = new xsltprocessor;
$proc->importStyleSheet($xsl); // attach the xsl rules
echo $proc->transformToXML($xml); // actual transformation

This should produce an HTML fragment similar to the following:

Hey! Welcome to my sweet CD collection!

<h1>PHP Rock</h1>
<h2>by Joe Coder</h2>
<h3> - 2003</h3>

<h1>Squashing Typos on a Winter's Eve</h1>
<h2> by kennyt</h2>
<h3> - 2004</h3>

Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

XSL_CLONE_AUTO (integer)



Table of Contents
xsl_xsltprocessor_get_parameter -- Get value of a parameter
xsl_xsltprocessor_has_exslt_support -- Determine if PHP has EXSLT support
xsl_xsltprocessor_import_stylesheet -- Import stylesheet
xsl_xsltprocessor_register_php_functions -- Enables the ability to use PHP functions as XSLT functions
xsl_xsltprocessor_remove_parameter -- Remove parameter
xsl_xsltprocessor_set_parameter -- Set value for a parameter
xsl_xsltprocessor_transform_to_doc -- Transform to document
xsl_xsltprocessor_transform_to_uri -- Transform to URI
xsl_xsltprocessor_transform_to_xml -- Transform to XML