RE: [xsl] Using mode to override templates

Subject: RE: [xsl] 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


Current Thread