File: Data.xml
<?xml version="1.0"?>
<list xml:lang="en">
<title>title 1</title>
<listitem>item 1</listitem>
<listitem>item 2</listitem>
<listitem>item 3</listitem>
<listitem xml:lang="sw">item 4</listitem>
<listitem xml:lang="en-gb">item 5</listitem>
<listitem xml:lang="zu">item 6</listitem>
<listitem xml:lang="jz">item 7</listitem>
</list>
File: Transform.xslt
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:variable name="favoriteNumber" select="23"/>
<xsl:variable name="favoriteColor" select="'blue'"/>
<xsl:variable name="complicatedVariable">
<xsl:choose>
<xsl:when test="count(//listitem) > 10">
<xsl:text>really long list</xsl:text>
</xsl:when>
<xsl:when test="count(//listitem) > 5">
<xsl:text>moderately long list</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>fairly short list</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:template match="/">
<xsl:text>Hello! Your favorite number is </xsl:text>
<xsl:value-of select="$favoriteNumber"/>
<xsl:text>.
Your favorite color is </xsl:text>
<xsl:value-of select="$favoriteColor"/>
<xsl:text>.

Here is a </xsl:text>
<xsl:value-of select="$complicatedVariable"/>
<xsl:text>:
</xsl:text>
<xsl:variable name="listitems" select="list/listitem"/>
<xsl:call-template name="processListitems">
<xsl:with-param name="items" select="$listitems"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="processListitems">
<xsl:param name="items"/>
<xsl:variable name="favoriteColor">
<xsl:text>chartreuse</xsl:text>
</xsl:variable>
<xsl:text> (Your favorite color is now </xsl:text>
<xsl:value-of select="$favoriteColor"/>
<xsl:text>.)
</xsl:text>
<xsl:for-each select="$items">
<xsl:value-of select="position()"/>
<xsl:text>. </xsl:text>
<xsl:value-of select="."/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Output:
Hello! Your favorite number is 23.
Your favorite color is blue.
Here is a moderately long list:
(Your favorite color is now chartreuse.)
1. item 1
2. item 2
3. item 3
4. item 4
5. item 5
6. item 6
7. item 7
|