Subject: RE: question about call-template From: "Carl Soane" <csoane@xxxxxxxxxxxxx> Date: Mon, 31 Jan 2000 09:35:19 -0800 |
It's not a completely clean solution, but how I achieve the "pass function by reference" functionality you're looking for is through a switcher template. Here's an example: <xsl:template match="/"> <html><body> <xsl:call-template name="SWITCHER"> <xsl:with-param name="Tpl">C</xsl:with-param> </xsl:call-template> </body></html> </xsl:template> <xsl:template name="SWITCHER"> <xsl:param name="Tpl"></xsl:param> <xsl:choose> <xsl:when test="'B'=$Tpl"> <xsl:call-template name="B"/> </xsl:when> <xsl:when test="'C'=$Tpl"> <xsl:call-template name="C"/> </xsl:when> </xsl:choose> </xsl:template> <xsl:template name="B"> The B Template <HR/> </xsl:template> <xsl:template name="C"> The C Template <HR/> </xsl:template> Hope that helps. -----Original Message----- From: owner-xsl-list@xxxxxxxxxxxxxxxx [SMTP:owner-xsl-list@xxxxxxxxxxxxxxxx] On Behalf Of Reid M. Pinchback Sent: Saturday, January 29, 2000 5:40 PM To: XSL-List@xxxxxxxxxxxxxxxx Subject: question about call-template [Apologies if anybody has seen this message before. I'm pretty sure the listserv never sent it out the first time, but the archive on Mulberry's web site is broken and I can't check to make sure.] I'm stumped. I've learned how to write a template. Ditto for calling a template by name, and for passing parameters to a template. I can't find a way to pass the *name* of a template to another template, and then call that template by that name. In other words, something like: <xsl:template match="/"> <html><body> <xsl:call-template name="A"> <xsl:with-param name="Tpl">B</xsl:with-param> </xsl:call-template> </body></html> </xsl:template> <xsl:template name="A"> <xsl:param name="Tpl"></xsl:param> <xsl:call-template name="$Tpl"></xsl:call-template> </xsl:template> <xsl:template name="B"> <HR/> </xsl:template> Should this be possible? I'm using IBM's XSL processor, but when I try this I just get: "XSL Error: Could not find template named: '$Tpl' Basically what I'm looking for is the same kind of functionality you get in languages that allow you to pass a function by reference. That way I could create one template that did common processing, and pass a specialized template to it to handle issues specific to the portion of the document tree I'm trying to process (eg: create a generic reusable table layout vs dealing with content-specific layout issues in the rows). Thanks in advance for any assistance. XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: question about call-template, Reid M. Pinchback | Thread | RE: question about call-template, Reid M. Pinchback |
RE: String Handling in XSLT, Kay Michael | Date | RE: Encoding problem, sara . mitchell |
Month |