This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Using mode to override templates
- From: "Hunsberger, Peter" <Peter dot Hunsberger at stjude dot org>
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Date: Tue, 2 Jul 2002 08:46:45 -0500
- Subject: RE: [xsl] Using mode to override templates
- Reply-to: xsl-list at lists dot mulberrytech dot com
> For this to work I would need to replace all occurances of:
>
> <xsl:apply-templates/>
>
> with:
>
> <xsl:choose>
> <xsl:when test="$print = 'yes'">
> <xsl:apply-templates mode="print"/>
> </xsl:when>
> <xsl:otherwise>
> <xsl:apply-templates/>
> </xsl:otherwise>
> </xsl:choose>
I've occasionally run into cases where I wished it was possible to specify a
list of modes on a template, something like mode="print | display". In any
case, the other possible way around this that may help in your case is to
have your specialized templates fire your more generic templates. I've used
patterns like:
<xsl:template match="gunk" mode="print">
...
<xsl:apply-templates select="." mode="generic"/>
...
</xsl:template>
Which causes the current node to get passed on to a more generic template
after some specific processing. This may of course result in your being
required to add mode="generic" to many of your normal calls...
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list