RE: question about call-template

Subject: RE: question about call-template
From: Kay Michael <Michael.Kay@xxxxxxx>
Date: Mon, 31 Jan 2000 09:43:56 -0000
> I can't find a way to pass the *name* of a template to 
> another template, and then call that template by that name.

Can't be done with call-template, except by an xsl:choose instruction that
lists all the possibilities.

You could achieve the effect with apply-templates with a bit of deviousness.

Change your named template from
<xsl:template name="xyz">
to
<xsl:template name="xyz" match="xsl:template[@name='xyz']"/>

and call it like this:
<xsl:variable name="tname" select="'xyz'"/>
<xsl:apply-templates select="document('')/*/xsl:template[@name=$tname]"/>

However, this will change the current node and node list; if the named
template needs these, they'll have to be passed as parameters.

I suspect if you go back to the original problem, there is a better solution
than this.

Mike Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread