# XSL functions

## Introduction

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

## Requirements

This extension uses libxslt which can be found at » http://xmlsoft.org/XSLT/. libxslt version 1.1.0 or greater is required.

## Installation

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.

## Predefined Classes

## XSLTProcessor

## Constructor

- XSLTProcessor::__construct - construct a new XSLTProcessor object

## Methods

- XSLTProcessor::getParameter - Get value of a parameter

- XSLTProcessor::hasExsltSupport - Determine if PHP has EXSLT support

- XSLTProcessor::importStylesheet - Import stylesheet

- XSLTProcessor::registerPHPFunctions - Enables the ability to use PHP functions as XSLT functions

- XSLTProcessor::removeParameter - Remove parameter

- XSLTProcessor::setParameter - Set value for a parameter

- XSLTProcessor::transformToDoc - Transform to DOMDocument

- XSLTProcessor::transformToURI - Transform to URI

- XSLTProcessor::transformToXML - Transform to XML

## Examples

Many examples in this reference require both an XML and an XSL file. We will use collection.xml and collection.xsl that contains the following:

Example#1 collection.xml

    <collection>
     <cd>
      <title>Fight for your mind</title>
      <artist>Ben Harper</artist>
      <year>1995</year>
     </cd>
     <cd>
      <title>Electric Ladyland</title>
      <artist>Jimi Hendrix</artist>
      <year>1997</year>
     </cd>
    </collection>

Example#2 collection.xsl

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:param name="owner" select="'Nicolas Eliaszewicz'"/>
     <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
     <xsl:template match="collection">
      Hey! Welcome to <xsl:value-of select="$owner"/>'s 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"/> - <xsl:value-of select="year"/></h2>
      <hr />
     </xsl:template>
    </xsl:stylesheet>

## 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)
`XSL_CLONE_NEVER` (integer)
`XSL_CLONE_ALWAYS` (integer)
`LIBXSLT_VERSION` (integer)
  libxslt version like 10117. Available as of PHP 5.1.2.
`LIBXSLT_DOTTED_VERSION` (string)
  libxslt version like 1.1.17. Available as of PHP 5.1.2.
`LIBEXSLT_VERSION` (integer)
  libexslt version like 813. Available as of PHP 5.1.2.
`LIBEXSLT_DOTTED_VERSION` (string)
  libexslt version like 1.1.17. Available as of PHP 5.1.2.

## Table of Contents

- XSLTProcessor::__construct — Creates a new XSLTProcessor object
- XSLTProcessor::getParameter — Get value of a parameter
- XSLTProcessor::hasExsltSupport — Determine if PHP has EXSLT support
- XSLTProcessor::importStylesheet — Import stylesheet
- XSLTProcessor::registerPHPFunctions — Enables the ability to use PHP functions as XSLT functions
- XSLTProcessor::removeParameter — Remove parameter
- XSLTProcessor::setParameter — Set value for a parameter
- XSLTProcessor::transformToDoc — Transform to a DOMDocument
- XSLTProcessor::transformToURI — Transform to URI
- XSLTProcessor::transformToXML — Transform to XML