xsl-list
[Top] [All Lists]

RE: Apply Templates question

2003-10-20 10:53:39
No, you cannot do this.

You would need something like the javascript "eval" function in order for the 
XSLT processor to evaluate the text as a template.

XSLT does not have a runtime way of executing generated code. I don't know if 
XSLT2 provides some facility in this area. You can, however, generate a 
transform and then execute that in a second pass on a document. You can also 
make your actual templates more dependent on passed params in order to provide 
more dynamic behaviour.

rich 

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Bennett
Sent: Monday, October 20, 2003 10:43 AM
To: xsl-list-digest(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Apply Templates question

Hello,

Is there a way to apply a template stored in a variable or param?


Example,
        In my test stylesheet, I currently have:

        ...

<xsl:param name="template" select="'default'"/> <xsl:param name="testTemplate"/>

<xsl:template match="/">
        <xsl:apply-templates select="document('')/*"/> </xsl:template>

<xsl:template match="xsl:template[(_at_)name = '$template']">
        <xsl:param name="testTemplate"><xsl:copy-of select="."/></xsl:param> 
</xsl:template>

<xsl:template name="default">
        Made it to test.xsl - default template
</xsl:template> 
...


Which will allow a template to be selected based on a param but I'm not sure 
how to apply the template that gets stored in "testTemplate"
        (Or rather, how to apply the selected template once it's been matched 
by xsl:template[(_at_)name= '$template'])

Does anyone know where to go from here or have alternate suggestions?

TIA


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




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



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