Subject: Re: xsl:call-template question From: Gerard Berthet <gberthet@xxxxxxxxxxxxxxx> Date: Wed, 16 Feb 2000 23:04:09 -0800 |
Here is the way I would solve it. Regards, Gerard
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- / Template -->
<xsl:template match="/"> <HTML> <xsl:call-template name="buildpage"> <xsl:with-param name="nexttemplate">buildbody</xsl:with-param> </xsl:call-template> </HTML> </xsl:template>
<xsl:template name="buildpage"> <xsl:param name="nexttemplate">defaulttemplate</xsl:param> Invoking <xsl:value-of select="$nexttemplate"/> <xsl:choose> <xsl:when test="$nexttemplate = 'buildbody'"> <xsl:call-template name="buildbody"/> </xsl:when> <xsl:when test="$nexttemplate = ''"> <xsl:call-template name="defaulttemplate"/> </xsl:when> </xsl:choose> </xsl:template>
<xsl:template name="defaulttemplate"> In defaulttemplate </xsl:template>
<xsl:template name="buildbody"> <BODY> </BODY> </xsl:template> </xsl:stylesheet>
Hello,
Is it possible to call a template and pass in as a parameter the name of the template you would like the called template to call?
Here's a (non-working) example of what I am trying to do:
<!-- / Template -->
<xsl:template match="/"> <HTML> <xsl:call-template name="buildpage"> <xsl:with-param name="nexttemplate">buildbody</xsl:with-param> </xsl:call-template> </HTML> </xsl:template>
<!-- buildpage Template -->
<xsl:template name="buildpage"> <xsl:param name="nexttemplate">defaulttemplate</xsl:param> <xsl:value-of select="$nexttemplate"/> <xsl:call-template name="{$nexttemplate}"/> </xsl:template>
<!-- buildbody Template -->
<xsl:template name="buildbody"> <BODY> </BODY> </xsl:template>
I get the error "No named template "{$nexttemplate}" found" when the line <xsl:call-template name="{$nexttemplate}"/> is processed. I am able to get the value of $nexttemplate though...
Thanks in advance for any help you can give me.
Joni
========================== Gerard Berthet XML Networks, Inc. Email: gberthet@xxxxxxxxxxxxxxx http://www.xmlnetworks.com Tel: +1 (408) 356 - 5549 Cell: +1 (408) 218 - 1178 Fax: +1 (408) 356 - 0136
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: call-template question, Carl Soane | Thread | Do not quote entire XSL-List posts, XSL-List Owner |
[no subject], Rob Leonard | Date | Re:Doc Book...., Andre . Cedik |
Month |