Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Context (2/6) >

Context item "." and modes

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 .