Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Modes (2/7) >

Templates for multiple modes

Sometimes it happens that processing in several modes may share template for a particular node in the source XML document. In XSLT 2.0 it is possible to write just one template and provide a list of modes separated by space character in the mode attribute.

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"
                              mode="m1"/>
                  <xsl:apply-templates  select="bbb"
                              mode="m2"/>
                  <xsl:apply-templates  select="bbb"
                              mode="m3"/>
            </xsl:template>

            <xsl:template  match="bbb"
                        mode="m1 m3"> --- </xsl:template>

            <xsl:template  match="bbb"
                        mode="m2"> hello </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb/>
      </aaa>
Output
--- hello ---


Previous chapter: Value-of
Next chapter: Context
Previous page: Modes usage
Next page: Mode: #default