PHP 手冊
上一頁 |  | 下一頁

# CXXIII.XSL functions

# 介紹

切記!
這個延伸是實驗性質的。這個延伸的行為 -- 包括函數名稱和包含此延伸的任何其它文件 -- 在未來PHP的發行中可能會在不通知的情況改變。使用此延伸需自行承擔風險。

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.

示範 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>

示範 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>

示範 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>

# 預先定義常數

以下的常數由此延伸定義，只在這個延伸被編譯成PHP或實行時期被動態載入時有效。

`XSL_CLONE_AUTO` (integer)

`XSL_CLONE_NEVER` (integer)

`XSL_CLONE_ALWAYS` (integer)

上一頁 | 最開頭 | 下一頁
xdiff_string_patch | 上一層 | xsl_xsltprocessor_get_parameter