|
Subject: Re: conditional XSL to XSL From: Jeff Lansing <jeff@xxxxxxxx> Date: Fri, 07 Apr 2000 17:56:43 -0700 |
Jeff Lansing wrote:
> Michael Kay wrote:
>
> > > <xsl:template match="{$match-value}">
> >
> > The match attribute of xsl:template is not one of the (small number of)
> > attributes that are interpreted as attribute value templates.
> >
> <deleted stuff/>
> the only problem would seem to be getting the right stuff
> into these 'value1' and 'value2' strings.
>
Following a suggestion of David Carlisle, regarding another poster's
question, to "drop out of xpath, to xslt", I can now solve this problem with:
<x:template match="el">
<x:variable name="match-value">
<x:if test="@attr = 'x'">tr[@class='title']</x:if>
<x:if test="not(@attr = 'x')">tr[@class='title' and position() > 1]</x:if>
</x:variable>
<xsl:template match="{$match-value}">
<xsl:value-of select="foo"/>
<!--whole bunch of other complicated stuff-->
</xsl:template>
</x:template>
which yields these two templates in any of xalan,
xt, or saxon (oracle differs trivially in having ' for '):
<xsl:template match="tr[@class='title']">
<xsl:value-of select="foo"/>
</xsl:template>
<xsl:template match="tr[@class='title' and position() > 1]">
<xsl:value-of select="foo"/>
</xsl:template>
as desired.
Why? What about the note in 7.6.2, which seems to forbid
this in two different ways? Perhaps in this context of aliased
named spaces <xsl:template ...> is not really a named XSLT
object, and the value of its match attribute isn't really an
expression or pattern.
Jeff
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: conditional XSL to XSL, Jeff Lansing | Thread | Re: conditional XSL to XSL, David Carlisle |
| XSL:FO Rendering Tools, Jeff Hamilton | Date | Re: select attribute in apply-templ, Richard Bell |
| Month |