The XSL extension implements the XSL standard, performing
XSLT transformations using the
libxslt library
This extension uses libxslt which can be
found at http://xmlsoft.org/XSLT/. 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="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" indent="no"/>
<xsl:template match="collection">
Hey! Welcome to my sweet CD collection!
<xsl:apply-templates/>
</xsl:template>
<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>
</xsl:template>
</xsl:stylesheet> |
|
Example 2. Corresponding XML tree <collection>
<cd>
<title>PHP Rock</title>
<artist>Joe Coder</artist>
<year>2003</year>
</cd>
<cd>
<title>Squashing Typos on a Winter's Eve</title>
<artist>kennyt</artist>
<year>2004</year>
</cd>
</collection> |
|
Example 3. Making XML into HTML
The following PHP code uses the XML and XSL extensions to
transform XML into presentable HTML.
<?php /* Load the two XML sources */ $xml = new DomDocument; // from /ext/dom $xml->load('example.xml');
$xsl = new DomDocument; $xsl->load('example.xsl');
/* 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> |
|
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.