Subject: RE: Using mode to override templates
From: "Hunsberger, Peter" <Peter.Hunsberger@xxxxxxxxxx>
Date: Tue, 2 Jul 2002 08:46:45 -0500
|
> 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
|