sterling Sat Dec 8 20:08:31 2001 EDT
Modified files:
/phpdoc/en/functions xslt.xml
Log:
Update the documentation to the new XSLT extension in anticipation of mondays
compatibility breaking
release.
# I don't have a local test environment setup, so if someone would be so kind as to
check
# the XML, it would be much appreciated, I'll setup an environment as soon as
possible, but
# I wanted to get this stuff in *before* the release!
Index: phpdoc/en/functions/xslt.xml
diff -u phpdoc/en/functions/xslt.xml:1.25 phpdoc/en/functions/xslt.xml:1.26
--- phpdoc/en/functions/xslt.xml:1.25 Wed Nov 21 18:05:19 2001
+++ phpdoc/en/functions/xslt.xml Sat Dec 8 20:08:31 2001
@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.25 $ -->
+<!-- $Revision: 1.26 $ -->
<reference id="ref.xslt">
<title>XSLT functions</title>
<titleabbrev>XSLT</titleabbrev>
<partintro>
- &warn.experimental;
<sect1 id="xslt.partintro">
<title>Introduction</title>
@@ -24,7 +23,7 @@
<sect2 id="xslt.install">
<title>Installation</title>
<para>
- This extension uses <productname>Sabloton</productname>
+ This extension uses <productname>Sablotron</productname>
and <productname>expat</productname>, which can both be
found at <ulink
url="&url.sablotron;">&url.sablotron;</ulink>. Binaries
@@ -32,8 +31,8 @@
</para>
<para>
On UNIX, run <command>configure</command> with the <option
- role="configure">--with-sablot</option>.
- The <productname>Sablotron</productname> library
+ role="configure">--enable-xslt --with-xslt-sablot</option>
+ options. The <productname>Sablotron</productname> library
should be installed somewhere your compiler can find it.
</para>
</sect2>
@@ -41,33 +40,38 @@
<sect2 id="xslt.about">
<title>About This Extension</title>
<para>
- This PHP extension implements support
- <productname>Sablotron</productname> from Ginger Alliance
- in PHP. This toolkit lets you transform
- XML documents into other documents, including new XML
- documents, but also into HTML or other target formats. It
- basically provides a standardized and portable template
- mechanism, separating content and design of a website.
+ This PHP extension provides a processor independent API to XSLT
+ transformations. Currently this extension only supports the Sablotron
+ library from the Ginger Alliance. Support is planned for other
+ libraries, such as the Xalan library or the libxslt library.
</para>
+ <note>
+ <simpara>
+ This extension is different than the sablotron extension distributed with
+ versions of PHP prior to PHP 4.1, currently only the new XSLT extension in
+ PHP 4.1 is supported. If you need support for the old extension, please ask
+ your questions on the [EMAIL PROTECTED] mailing list.
+ </simpara>
+ </note>
</sect2>
</sect1>
</partintro>
- <refentry id="function.xslt-closelog">
+ <refentry id="function.xslt-set-log">
<refnamediv>
- <refname>xslt_closelog</refname>
- <refpurpose>Clear the logfile for a given instance of Sablotron</refpurpose>
+ <refname>xslt_set_log</refname>
+ <refpurpose>Set the log file to write log messages to</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
- <funcdef>bool <function>xslt_closelog</function></funcdef>
+ <funcdef>void <function>xslt_set_log</function></funcdef>
<paramdef>resource <parameter>xh</parameter></paramdef>
+ <paramdef>mixed <parameter>log</parameter></paramdef>
</funcprototype>
</funcsynopsis>
- &warn.experimental.func;
<para>
<variablelist>
<varlistentry>
@@ -78,11 +82,47 @@
</simpara>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><parameter>log</parameter></term>
+ <listitem>
+ <simpara>
+ This parameter is either a boolean value which toggles logging on and off, or a
+ string containing the logfile in which log errors too.
+ </simpara>
+ </listitem>
+ </varlistentry>
</variablelist></para>
<para>
- This function returns &false; if <parameter>parser</parameter> does
- not refer to a valid parser, or if the closing of the logfile
- fails. Otherwise it returns &true;.
+ This function allows you to set the file in which you want XSLT log messages to,
+ XSLT log messages are different than error messages, in that log messages are not
+ actually error messages but rather messages related to the state of the XSLT
+processor.
+ They are useful for debugging XSLT, when something goes wrong.
+ </para>
+ <para>
+ By default logging is disabled, in order to enable logging you must first call
+ <function>xslt_set_log</function> with a boolean parameter which enables logging,
+then if
+ you want to set the log file to debug to, you must then pass it a string
+containing the
+ filename:
+ <example>
+ <title>
+ Using the XSLT Logging features
+ </title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+$xh = xslt_create();
+xslt_set_log($xh, true);
+xslt_set_log($xh, getcwd() . 'myfile.log');
+
+$result = xslt_process($xh, 'dog.xml', 'pets.xsl');
+print($result);
+
+xslt_free($xh);
+?>
+]]>
+ </programlisting>
+ </example>
</para>
</refsect1>
</refentry>
@@ -90,7 +130,7 @@
<refentry id="function.xslt-create">
<refnamediv>
<refname>xslt_create</refname>
- <refpurpose>Create a new XSL processor.</refpurpose>
+ <refpurpose>Create a new XSLT processor.</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
@@ -100,10 +140,9 @@
<void/>
</funcprototype>
</funcsynopsis>
- &warn.experimental.func;
<para>
- This function returns a handle for a new XSL processor. This handle
- is needed in all subsequent calls to XSL functions.
+ Create and return a new XSLT processor resource for manipulation by the
+ other XSLT functions.
</para>
</refsect1>
</refentry>
@@ -111,7 +150,7 @@
<refentry id="function.xslt-errno">
<refnamediv>
<refname>xslt_errno</refname>
- <refpurpose>Return the current error number</refpurpose>
+ <refpurpose>Return a error number</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
@@ -123,11 +162,9 @@
</paramdef>
</funcprototype>
</funcsynopsis>
- &warn.experimental.func;
<para>
- Return the current error number of the given XSL processor. If
- no handle is given, the last error number that occured anywhere
- is returned.
+ Return an error code describing the last error that occured on the
+ passed XSLT processor.
</para>
</refsect1>
</refentry>
@@ -135,7 +172,7 @@
<refentry id="function.xslt-error">
<refnamediv>
<refname>xslt_error</refname>
- <refpurpose>Return the current error string</refpurpose>
+ <refpurpose>Return a error string</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
@@ -147,34 +184,34 @@
</paramdef>
</funcprototype>
</funcsynopsis>
- &warn.experimental.func;
<para>
- Return the current error string of the given XSL processor. If
- no handle is given, the last error string that occured anywhere
- is returned.
+ Return a string describing the last error that occured on the
+ passed XSLT processor.
</para>
- </refsect1>
- </refentry>
-
- <refentry id="function.xslt-fetch-result">
- <refnamediv>
- <refname>xslt_fetch_result</refname>
- <refpurpose>Fetch a (named) result buffer</refpurpose>
- </refnamediv>
- <refsect1>
- <title>Description</title>
- <funcsynopsis>
- <funcprototype>
- <funcdef>string <function>xslt_fetch_result</function></funcdef>
- <paramdef>resource <parameter>xh</parameter></paramdef>
- <paramdef>string <parameter>result_name</parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- &warn.experimental.func;
<para>
- Fetch a result buffer from the XSLT processor identified by
- the given handle. If no result name is given, the
- buffer named "/_result" is fetched.
+ <example>
+ <title>
+ Handling errors using the <function>xslt_error</function> and
+ <function>xslt_errno</function> functions.
+ </title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+$xh = xslt_create();
+$result = xslt_process($xh, 'dog.xml', 'pets.xsl');
+if (!$result) {
+ die(sprintf("Cannot process XSLT document [%d]: %s",
+ xslt_errno($xh), xslt_error($xh)));
+}
+
+print($result);
+
+xslt_free($xh);
+?>
+]]>
+ </programlisting>
+ </example>
</para>
</refsect1>
</refentry>
@@ -194,285 +231,316 @@
</paramdef>
</funcprototype>
</funcsynopsis>
- &warn.experimental.func;
<para>
Free the XSLT processor identified by the given handle.
</para>
</refsect1>
</refentry>
- <refentry id="function.xslt-openlog">
+ <refentry id="function.xslt-process">
<refnamediv>
- <refname>xslt_openlog</refname>
- <refpurpose>Set a logfile for XSLT processor messages</refpurpose>
+ <refname>xslt_process</refname>
+ <refpurpose>Perform an XSLT transformation</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
- <funcdef>bool <function>xslt_openlog</function></funcdef>
+ <funcdef>mixed
+ <function>xslt_process</function>
+ </funcdef>
<paramdef>resource <parameter>xh</parameter></paramdef>
- <paramdef>string <parameter>logfile</parameter></paramdef>
- <paramdef>int <parameter>loglevel</parameter></paramdef>
+ <paramdef>string <parameter>xml</parameter></paramdef>
+ <paramdef>string <parameter>xsl</parameter></paramdef>
+ <paramdef>string <parameter><optional>result</optional></parameter></paramdef>
+ <paramdef>array
+<parameter><optional>arguments</optional></parameter></paramdef>
+ <paramdef>array
+<parameter><optional>parameters</optional></parameter></paramdef>
</funcprototype>
</funcsynopsis>
- &warn.experimental.func;
<para>
- Set a logfile for the XSLT processor to place all of its error
- messages.
+ The XSLT process function is the crux of the new XSLT extension, it allows you to
+ perform an XSLT transformation using almost any type of input source visa-vi the
+concept
+ of argument buffers. Argument buffers is a concept taken from the Sablotron
+XSLT
+ processors (which is currently the only XSLT processor this extension supports).
+
</para>
- </refsect1>
- </refentry>
-
- <refentry id="function.xslt-output-begintransform">
- <refnamediv>
- <refname>xslt_output_begintransform</refname>
- <refpurpose>Begin an XSLT transformation on the output</refpurpose>
- </refnamediv>
- <refsect1>
- <title>Description</title>
- <funcsynopsis>
- <funcprototype>
- <funcdef>void
- <function>xslt_output_begintransform</function>
- </funcdef>
- <paramdef>
- string <parameter>xslt_filename</parameter>
- </paramdef>
- </funcprototype>
- </funcsynopsis>
- &warn.experimental.func;
<para>
- This function will begin the output transformation on your data.
- From the point you call <function>xslt_output_begintransform</function>
- till the point you call <function>xslt_output_endtransform</function>
- all output will be transformed through the xslt stylesheet given by
- the first argument.
+ The simplest type of transformation with the <function>xslt_process</function>
+function
+ is transforming an XML file with an XSLT file and placing the result in third
+file, which
+ contains the new XML document (or HTML document). Doing this with sablotron is
+really quite
+ easy...
+ <para>
+ <example>
+ <title>Using the <function>xslt_process</function> to transform an XML file and
+a XSL file
+ to a new XML file</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+// Allocate a new XSLT processor
+$xh = xslt_create();
+
+// Process the document
+if (xslt_process($xh, 'sample.xml', 'sample.xsl', 'result.xml')) {
+ print "SUCCESS, sample.xml was transformed by sample.xsl into result.xml";
+ print ", result.xml has the following contents\n<br>\n";
+ print "<pre>\n";
+ readfile('result.xml');
+ print "</pre>\n";
+}
+else {
+ print "Sorry, sample.xml could not be transformed by sample.xsl into";
+ print " result.xml the reason is that " . xslt_error($xh) . " and the ";
+ print "error code is " . xslt_errno($xh);
+}
+
+xslt_free($xh);
+
+?>
+]]>
+ </programlisting>
+ </example>
</para>
<para>
- <note>
- <simpara>
- This function does not currently support nested output transformations.
- </simpara>
- </note>
+ While this functionality is great, many times, especially in a web environment,
+you want to
+ be able to print out your results directly. Therefore, if you omit the third
+argument to
+ the <function>xslt_process</function> function (or provide a NULL value for the
+argument), it
+ will automatically return the value of the XSLT transformation, instead of
+writing it to a
+ file...
</para>
<para>
<example>
- <title>
- Transforming output through an XSLT stylesheet, using the DOM-XML functions
for xml generation
- </title>
- <programlisting role="php">
+ <title>Using the <function>xslt_process</function> to transform an XML file and
+a XSL file
+ to a variable containing the resulting XML data</title>
+ <programlisting role="php">
<![CDATA[
<?php
-$xsl_file = "article.xsl";
-xslt_output_begintransform($xsl_file);
+// Allocate a new XSLT processor
+$xh = xslt_create();
-$doc = new_xmldoc('1.0');
-$article = $doc->new_root('article');
+// Process the document, returning the result into the $result variable
+$result = xslt_process($xh, 'sample.xml', 'sample.xsl');
+if ($result) {
+ print "SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
+ print " variable, the \$result variable has the following contents\n<br>\n";
+ print "<pre>\n";
+ print $result;
+ print "</pre>\n";
+}
+else {
+ print "Sorry, sample.xml could not be transformed by sample.xsl into";
+ print " the \$result variable the reason is that " . xslt_error($xh) .
+ print " and the error code is " . xslt_errno($xh);
+}
-$article->new_child('title', 'The History of South Tyrol');
-$article->new_child('author', 'Sterling Hughes');
-$article->new_child('body', 'Back after WWI, Italy gained South Tyrol from
- Austria. Since that point nothing interesting has
- happened');
+xslt_free($xh);
-echo $doc->dumpmem();
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ The above two cases are the two simplest cases there are when it comes to XSLT
+transformation
+ and I'd dare say that they are the most common cases, however, sometimes you get
+your XML and
+ XSLT code from external sources, such as a database or a socket. In these cases
+you'll have
+ the XML and/or XSLT data in a variable -- and in production applications the
+overhead of dumping
+ these to file may be too much. This is where XSLT's "argument"
+syntax, comes to the
+ rescue. Instead of files as the XML and XSLT arguments to the
+<function>xslt_process</function>
+ function, you can specify "argument place holders" which are then
+subsituted by values
+ given in the arguments array (5th parameter to the
+<function>xslt_process</function> function).
+ The following is an example of processing XML and XSLT into a result variable
+without the use
+ of files at all.
+ </para>
+ <para>
+ <example>
+ <title>Using the <function>xslt_process</function> to transform a variable
+containing XML data
+ and a variable containing XSL data into a variable containing the resulting XML
+data</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+// $xml and $xsl contain the XML and XSL data
-xslt_output_endtransform();
+$arguments = array(
+ '/_xml' => $xml,
+ '/_xsl' => $xsl
+);
+
+// Allocate a new XSLT processor
+$xh = xslt_create();
+
+// Process the document
+$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);
+if ($result) {
+ print "SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
+ print " variable, the \$result variable has the following contents\n<br>\n";
+ print "<pre>\n";
+ print $result;
+ print "</pre>\n";
+}
+else {
+ print "Sorry, sample.xml could not be transformed by sample.xsl into";
+ print " the \$result variable the reason is that " . xslt_error($xh) .
+ print " and the error code is " . xslt_errno($xh);
+}
+xslt_free($xh);
+?>
]]>
</programlisting>
</example>
</para>
+ <para>
+ Finally, the last argument to the <function>xslt_process</function> function is
+any parameters
+ that you want to pass to the XSLT document. These parameters can then be
+accessed within
+ your XSL files using the <xsl:param name="parameter_name">
+instruction.
+ </para>
</refsect1>
</refentry>
- <refentry id="function.xslt-output-endtransform">
+ <refentry id="function.xslt-set-sax-handler">
<refnamediv>
- <refname>xslt_output_endtransform</refname>
- <refpurpose>End an output transformation started with
xslt_output_begintransform</refpurpose>
+ <refname>xslt_set_sax_handler</refname>
+ <refpurpose>Set SAX handlers for a XSLT processor</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
- <funcdef>void
- <function>xslt_output_endtransform</function>
- </funcdef>
- <void/>
+ <funcdef>void <function>xslt_set_sax_handler</function></funcdef>
+ <paramdef>resource <parameter>xh</parameter></paramdef>
+ <paramdef>array <parameter>handlers</parameter></paramdef>
</funcprototype>
</funcsynopsis>
- &warn.experimental.func;
<para>
- The <function>xslt_output_endtransform</function> ends the output transformation
- started by the <function>xslt_output_begintransform</function> function. You
must call
- this function in order to see the results of the output transformation.
+ Set SAX handlers on the resource handle given by
+ <parameter>xh</parameter>. SAX handlers should be a two dimensional array
+ with the format (all top level elements are optional):
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+array(
+[document] =>
+ array(
+ start document handler,
+ end document handler
+ ),
+[element] =>
+ array(
+ start element handler,
+ end element handler
+ ),
+[namespace] =>
+ array(
+ start namespace handler,
+ end namespace handler
+ ),
+[comment] => comment handler,
+[pi] => processing instruction handler,
+[character] => character data handler
+)
+]]>
+ </programlisting>
+ </informalexample>
</para>
</refsect1>
</refentry>
- <refentry id="function.xslt-process">
+ <refentry id="function.xslt-set-scheme-handler">
<refnamediv>
- <refname>xslt_process</refname>
- <refpurpose>Transform XML data through a string containing XSL data</refpurpose>
+ <refname>xslt_set_scheme_handler</refname>
+ <refpurpose>Set Scheme handlers for a XSLT processor</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
- <funcdef>bool
- <function>xslt_process</function>
- </funcdef>
- <paramdef>string <parameter>xsl_data</parameter></paramdef>
- <paramdef>string <parameter>xml_data</parameter></paramdef>
- <paramdef>string <parameter>result</parameter></paramdef>
+ <funcdef>void <function>xslt_set_scheme_handler</function></funcdef>
+ <paramdef>resource <parameter>xh</parameter></paramdef>
+ <paramdef>array <parameter>handlers</parameter></paramdef>
</funcprototype>
</funcsynopsis>
- &warn.experimental.func;
- <para>
- The <function>xslt_process</function> takes a string containing the XSLT
stylesheet as
- its first argument, it takes a second string containing the XML data you want to
- transform and then a third string containing the results of the transformation.
- <function>xslt_process</function> will return &true; on success and &false; on
failure,
- to get the error number and error string if an error occurs use the
- <function>xslt_errno</function> and <function>xslt_error</function> functions.
- </para>
<para>
- <example>
- <title>Using the <function>xslt_process</function> to transform three
strings</title>
- <programlisting role="php">
+ Set Scheme handlers on the resource handle given by
+ <parameter>xh</parameter>. Scheme handlers should be an array with the
+ format (all elements are optional):
+ <informalexample>
+ <programlisting role="php">
<![CDATA[
-<?php
-
-$xslData = '<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="article">
- <table border="1" cellpadding="2" cellspacing="1">
- <tr>
- <td width="20%">
- &#160;
- </td>
- <td width="80%">
- <h2><xsl:value-of select="title"/></h2>
- <h3><xsl:value-of select="author"/></h3>
- <br/>
-
- <xsl:copy-of select="p"/>
- </td>
- </tr>
- </table>
-</xsl:template>
-
-</xsl:stylesheet>';
-
-$xmlData = '<?xml version="1.0"?>
-<article>
- <title>Learning German</title>
- <author>Sterling Hughes</author>
- <p>
- Essential phrases:
- <br/>
- K#246;nnen Sie mir sagen, wo die Toilette ist?<br/>
- Ein grosses Bier, bitte!<br/>
- Noch eins, bitte.<br/>
- </p>
-</article>';
-
-if (xslt_process($xslData, $xmlData, $result)) {
- echo "Here is the brilliant in-depth article on learning";
- echo " German: ";
- echo "<br>\n<br>";
- echo $result;
-} else {
- echo "There was an error that occurred in the XSL transformation...\n";
- echo "\tError number: " . xslt_errno() . "\n";
- echo "\tError string: " . xslt_error() . "\n";
- exit;
-}
-?>
+array(
+[get_all] => get all handler,
+[open] => open handler,
+[get] => get handler,
+[put] => put handler,
+[close] => close handler
+)
]]>
- </programlisting>
- </example>
+ </programlisting>
+ </informalexample>
</para>
</refsect1>
</refentry>
- <refentry id="function.xslt-run">
+ <refentry id="function.xslt-set-error-handler">
<refnamediv>
- <refname>xslt_run</refname>
- <refpurpose>Apply a XSLT stylesheet to a file.</refpurpose>
+ <refname>xslt_set_error_handler</refname>
+ <refpurpose>Set an error handler for a XSLT processor</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
- <funcdef>bool <function>xslt_run</function></funcdef>
+ <funcdef>void <function>xslt_set_error_handler</function></funcdef>
<paramdef>resource <parameter>xh</parameter></paramdef>
- <paramdef>string <parameter>xslt_file</parameter></paramdef>
- <paramdef>string <parameter>xml_data_file</parameter></paramdef>
- <paramdef>string <parameter>result</parameter></paramdef>
- <paramdef>array <parameter>xslt_params</parameter></paramdef>
- <paramdef>array <parameter>xslt_args</parameter></paramdef>
+ <paramdef>mixed <parameter>handler</parameter></paramdef>
</funcprototype>
</funcsynopsis>
- &warn.experimental.func;
- <para>
- Process the xml_data_file by applying the xslt_file stylesheet to
- it. The stylesheet has access to xslt_params and the processor
- is started with xslt_args. The result of the XSLT transformation
- is placed in the named buffer (default is "/_result").
+ <para>
+ Set an error handler function for the XSLT processor given by
+<parameter>xh</parameter>,
+ this function will be called whenever an error occurs in the XSLT transformation
+ (this function is also called for notices).
</para>
</refsect1>
</refentry>
- <refentry id="function.xslt-set-sax-handler">
+ <refentry id="function.xslt-set-base">
<refnamediv>
- <refname>xslt_set_sax_handler</refname>
- <refpurpose>Set SAX handlers for a XSLT processor</refpurpose>
+ <refname>xslt_set_base</refname>
+ <refpurpose>Set the base URI for all XSLT transformations</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
- <funcdef>bool <function>xslt_set_sax_handler</function></funcdef>
+ <funcdef>void <function>xslt_set_base</function></funcdef>
<paramdef>resource <parameter>xh</parameter></paramdef>
- <paramdef>array <parameter>handlers</parameter></paramdef>
+ <paramdef>string <parameter>uri</parameter></paramdef>
</funcprototype>
</funcsynopsis>
- &warn.experimental.func;
<para>
- Set SAX handlers on the resource handle given by
- <parameter>xh</parameter>.
+ Sets the base URI for all XSLT transformations, the base URI is used
+ with Xpath instructions to resolve document() and other commands which
+ access external resources.
</para>
</refsect1>
</refentry>
- <refentry id="function.xslt-transform">
+ <refentry id="function.xslt-set-encoding">
<refnamediv>
- <refname>xslt_transform</refname>
- <refpurpose>Perform an XSLT transformation</refpurpose>
+ <refname>xslt_set_encoding</refname>
+ <refpurpose>Set the encoding for the parsing of XML documents</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
- <funcdef>bool
- <function>xslt_transform</function>
- </funcdef>
- <paramdef>string <parameter>xsl</parameter></paramdef>
- <paramdef>string <parameter>xml</parameter></paramdef>
- <paramdef>string <parameter>result</parameter></paramdef>
- <paramdef>string <parameter>params</parameter></paramdef>
- <paramdef>string <parameter>args</parameter></paramdef>
- <paramdef>string <parameter>resultBuffer</parameter></paramdef>
+ <funcdef>void <function>xslt_set_encoding</function></funcdef>
+ <paramdef>resource <parameter>xh</parameter></paramdef>
+ <paramdef>string <parameter>encoding</parameter></paramdef>
</funcprototype>
</funcsynopsis>
- &warn.experimental.func;
<para>
- The <function>xslt_transform</function> provides an interface to sablotron's
- more advanced features without requiring you to use the resource API.
+ Set the encoding for the XSLT transformations. When using the Sablotron backend
+this option
+ is only available when you compile Sablotron with encoding support.
</para>
</refsect1>
</refentry>