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 |