[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] computed
Subject: Re: [xsl] computed <xsl:apply-templates mode=
From: Kevin Rodgers <kevin.rodgers@xxxxxxx>
Date: Wed, 8 Dec 2004 16:13:23 -0700

robert frapples writes:
> I am <xsl:sort>ing elements and then using <xsl:apply-templates
> select=".">.  I need to set the @mode attribute of
> <xsl:apply-templates>, with a value from the XML.  As @mode takes a
> qname, not an expression, I cannot reference a variable (set a
> variable with <xsl:value-of> and call $var_name), reference a node (
> self::node()/@my_attribute), or call a function (
> current()/@my_attribute or id() or key() ).  Is there any way I can
> accomplish this?

Does something as mundane as this work:

<xsl:choose>
  <xsl:when test="$variable = 'foo'">
    <xsl:apply-templates mode="foo"/>
  </xsl:when>
  <xsl:when test="$variable = 'bar'">
    <xsl:apply-templates mode="bar"/>
  </xsl:when>
  <!-- etc. -->
  <xsl:otherwise>
    <xsl:message>Invalid variable: <xsl:value-of select="$variable"/>
</xsl:message>
  </xsl:otherwise>
</xsl:choose>

-- 
Kevin Rodgers


Current Thread