Difference between revisions of "XSLT Module"
Jump to navigation
Jump to search
(First example added.) |
(→Examples: Second example added.) |
||
Line 53: | Line 53: | ||
'''Result:''' | '''Result:''' | ||
<pre class="brush:xml"><result/></pre> | <pre class="brush:xml"><result/></pre> | ||
+ | |||
+ | '''Example 2: Basic XSL transformation with dummy document and without parameters''' | ||
+ | |||
+ | '''Query:''' | ||
+ | <pre class="brush:xquery"> | ||
+ | declare option db:chop "off"; | ||
+ | |||
+ | let $in := | ||
+ | <books> | ||
+ | <book> | ||
+ | <title>XSLT Programmer´s Reference</title> | ||
+ | <author>Michael H. Kay</author> | ||
+ | </book> | ||
+ | <book> | ||
+ | <title>XSLT</title> | ||
+ | <author>Doug Tidwell</author> | ||
+ | <author>Simon St. Laurent</author> | ||
+ | <author>Robert Romano</author> | ||
+ | </book> | ||
+ | </books> | ||
+ | let $style := | ||
+ | <html xsl:version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns='http://www.w3.org/1999/xhtml'> | ||
+ | <body> | ||
+ | <h1>Books</h1> | ||
+ | <ul> | ||
+ | <xsl:for-each select='books/book'> | ||
+ | <li> | ||
+ | <b><xsl:apply-templates select='title'/></b>: <xsl:value-of select='string-join(author, ", ")'/> | ||
+ | </li> | ||
+ | </xsl:for-each> | ||
+ | </ul> | ||
+ | </body> | ||
+ | </html> | ||
+ | return xslt:transform($in, $style) | ||
+ | </pre> | ||
+ | '''Result:''' | ||
+ | <pre class="brush:xml"> | ||
+ | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
+ | <body> | ||
+ | <h1>Books</h1> | ||
+ | <ul> | ||
+ | <li><b>XSLT Programmer´s Reference</b>: Michael H. Kay</li> | ||
+ | <li><b>XSLT</b>: Doug Tidwell, Simon St. Laurent, Robert Romano</li> | ||
+ | </ul> | ||
+ | </body> | ||
+ | </html></pre> | ||
[[Category:XQuery]] | [[Category:XQuery]] |
Revision as of 14:16, 10 July 2011
This module contains XQuery functions and variables to perform XSLT transformations. All functions are preceded by the xslt:
prefix, which is linked to the http://www.basex.org/xslt
namespace. By default, this module relies on the internal XSLT 1.0 implementation of Java. If Saxon is found in the classpath, however, XSLT 2.0 is used.
Note that this module has been introduced with Version 6.7.1 of BaseX.
$xslt:processor
Signatures | $xslt:processor as xs:string |
Summary | This variable returns the name of the applied XSLT processor (currently: Java or Saxon ). |
$xslt:version
Signatures | $xslt:version as xs:string |
Summary | This variable returns the supported XSLT version (currently: 1.0 or 2.0 ). |
xslt:transform
Signatures | xslt:transform($input as item(), $stylesheet as item()) as node() xslt:transform($input as item(), $stylesheet as item(), $params as item()) as node()
|
Summary | Transforms the document specified by $input , using the XSLT template specified by $stylesheet , and returns the result as node() instance. $input and $stylesheet may be
If Saxon is found in the Java classpath, |
Examples
Example 1: Basic XSL transformation with dummy document and without parameters
Query:
let $input := <dummy/> let $xslt := <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:template match="/"> <result/> </xsl:template> </xsl:stylesheet> return xslt:transform($input, $xslt)
Result:
<result/>
Example 2: Basic XSL transformation with dummy document and without parameters
Query:
declare option db:chop "off"; let $in := <books> <book> <title>XSLT Programmer´s Reference</title> <author>Michael H. Kay</author> </book> <book> <title>XSLT</title> <author>Doug Tidwell</author> <author>Simon St. Laurent</author> <author>Robert Romano</author> </book> </books> let $style := <html xsl:version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns='http://www.w3.org/1999/xhtml'> <body> <h1>Books</h1> <ul> <xsl:for-each select='books/book'> <li> <b><xsl:apply-templates select='title'/></b>: <xsl:value-of select='string-join(author, ", ")'/> </li> </xsl:for-each> </ul> </body> </html> return xslt:transform($in, $style)
Result:
<html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Books</h1> <ul> <li><b>XSLT Programmer´s Reference</b>: Michael H. Kay</li> <li><b>XSLT</b>: Doug Tidwell, Simon St. Laurent, Robert Romano</li> </ul> </body> </html>