|
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 |