Combination of context items and modes can be very useful for a division of a stylesheet to small processing units which help code reuse.
|
XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/> <xsl:template match="/aaa"> <xsl:apply-templates select="bbb"/> </xsl:template> <xsl:template match="bbb"> <xxx> <xsl:apply-templates select="." mode="X"/> <xsl:text> - </xsl:text> <xsl:apply-templates select="." mode="Y"/> <xsl:text> (</xsl:text> <xsl:apply-templates select="." mode="Z"/> <xsl:text>)</xsl:text> </xxx> </xsl:template> <xsl:template match="bbb" mode="X"> <xsl:value-of select="."/> </xsl:template> <xsl:template match="bbb" mode="Y"> <xsl:value-of select="@x"/> </xsl:template> <xsl:template match="*" mode="Z"> <xsl:value-of select="name(..)"/> </xsl:template> </xsl:stylesheet> |
|
|
XML
<aaa> <bbb x="000">B1</bbb> <bbb x="111">B2</bbb> <bbb x="222">B3</bbb> <bbb x="333">B4</bbb> </aaa> |
Output
<xxx>B1 - 000 (aaa)</xxx> <xxx>B2 - 111 (aaa)</xxx> <xxx>B3 - 222 (aaa)</xxx> <xxx>B4 - 333 (aaa)</xxx> |
| Previous chapter: | Modes |
| Next chapter: | Implicit behaviour |
| Previous page: | Focus of XPath expressions |
| Next page: | Dangers of context item . |