Thanks to everyone for the quick replies!
Ya, after looking over the FXSL materials my head is spinning.
I'm going to stick with the simple choose statement you mention below.
I have XML which looks like this:
<warning conformance="alert_hand_in_gears">
<title/>
<para/>
</warning>
And XSLT:
<xsl:variable name="this.warning">
<xsl:choose>
<xsl:when test="string-length($list) = 0">
<!-- We are done -->
</xsl:when>
<xsl:when test="contains($list, ' ')">
<xsl:value-of select="substring-before($list, ' ')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$list"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="string-length($this.warning) > 0">
<xsl:choose>
<xsl:when test="$this.warning =
'alert_hand_in_gears'"><xsl:call-template
name="alert_hand_in_gears"/></xsl:when>
<xsl:otherwise><fo:inline color="red" font-size="6pt"
width="38pt" font-weight="bold">ART NOT FOUND <xsl:value-of
select="$this.warning"/></fo:inline></xsl:otherwise>
</xsl:choose>
So, I'm hoping to be able to dynamically pull templates based upon the
conformance attribute in the XML. This.warning is a template that contains
only an SVG. It would be nice to do this dynamically from the XML but looks
like its just easier to hard code the values.
David White
-----Original Message-----
From: andrew welch [mailto:andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com]
Sent: Friday, August 11, 2006 7:54 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] passing a variable to call-template
On 8/11/06, David White <davidw(_at_)kencook(_dot_)com> wrote:
Is this possible?
<xsl:call-template name="{$this.warning}"/>
I would like to pass a variable into call-template but haven't had any luck.
No this isn't possible as the name attribute must contain a qname,
which means it must be known at compile time... the usual way is:
<xsl:choose>
<xsl:when test="$this.warning = 'red'">
<xsl:call-template name="red"/>
</xsl:when>
<xsl:when test="$this.warning = 'green'>
<xsl:call-template name="green"/>
etc... although it's highly likely you can achieve what you are trying
to do another way, maybe post some examples showing your requirements
and see if there's a better solution...
cheers
andrew
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--