Re: [xsl] passing a variable to call-template

Subject: Re: [xsl] passing a variable to call-template
From: "andrew welch" <andrew.j.welch@xxxxxxxxx>
Date: Fri, 11 Aug 2006 13:53:37 +0100
On 8/11/06, David White <davidw@xxxxxxxxxxx> 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

Current Thread