Stephen,
At 01:49 PM 12/8/2004, you wrote:
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?
You can't select modes dynamically, no.
But you could say <xsl:apply-templates select="." mode="dispatch"/> and
then have one or more templates in the "dispatch" mode that would break
things out.
This can actually be quite neat:
<xsl:template match="red|green">
<div color="name()">
<!-- red and green stuff -->
<xsl:apply-templates select="." mode="dispatch"/>
</xsl:template>
<xsl:template match="red" mode="dispatch">
<!-- red stuff -->
</xsl:template>
<xsl:template match="green" mode="dispatch">
<!-- green stuff -->
</xsl:template>
etc.
Cheers,
Wendell
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--