xsl-list
[Top] [All Lists]

RE: calling a template and xsl:include

2004-09-23 08:57:20
I have 2 questions:
I remember that I once saw somewhere a snippet of XSLT code about
calling a template having the name in a variable, something like this:

<xsl:call-template select="$tempalteToCall"/>

As far as I know this can't be done with XSLT 1.0, but there was a
work-around to do so. 

Correct it can't be done in XSLT 1.0.

Saxon has an extension saxon:call-template that does this.

But there is a workaround that doesn't need extensions: it's a technique
introduced by Dimitre Novatchev in his FXSL library. Essentially, if you
have a template

<xsl:template name="x">

then add a match pattern:

<xsl:template name="x" match="dynamic:x"/>

Define a variable whose value is a node:

<xsl:variable name="dynamic:x"><dynamic:x/></xsl:variable>

Now you can define a variable:

<xsl:variable name="templateToCall" select="$dynamic:x/*"/>

and do:

<xsl:apply-templates select="$templateToCall"/>

which in this case will call the template dynamic:x, but can be adapted to
call whatever template the variable templateToCall is set to.

Michael Kay
http://www.saxonica.com/  


Any one know how to do that or where to find
info about that? It would help.

The other question is about performance. I use many xsl:include and I
would like to know if this could cause some notable performance issue
on the processor?

Thanks.
Bye

Francesco.
-- 
www.GetFirefox.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>
--+--




<Prev in Thread] Current Thread [Next in Thread>