Re: [xsl] Can apply-templates attribute mode be passed a variable?

Subject: Re: [xsl] Can apply-templates attribute mode be passed a variable?
From: Mike Brown <mike@xxxxxxxx>
Date: Mon, 8 Jul 2002 00:09:27 -0600 (MDT)
seema_mehta@xxxxxxxxx wrote:
> Can apply-templates attribute mode be passed a variable? i.e. is the
> following code legal?
> 
>      <xsl:for-each select="x">
>           <xsl:variable name="mode" select="@attr"/>
>           <xsl:apply-templates select="self::x" mode="$mode"/>
>      </xsl:for-each>

No. You'll have to do it the long way:

<xsl:choose>
  <xsl:when test="$mode='a'">
    <xsl:apply-templates select="." mode="a"/>
  </xsl:when>
  <xsl:when test="$mode='b'">
    <xsl:apply-templates select="." mode="b"/>
  </xsl:when>
</xsl:choose>

Note "." is going to be a little more efficient than "self::x",
since you already know you're processing an "x" element.

   - Mike
____________________________________________________________________________
  mike j. brown                   |  xml/xslt: http://skew.org/xml/
  denver/boulder, colorado, usa   |  resume: http://skew.org/~mike/resume/

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread