[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Hi --
I've spent a fair while searching for a solution to a seemingly simple problem, perhaps someone could help me out...
I'm trying to make a generic template which will, in effect, simply insert stuff before and after the content. In one case, I want to do it to apply font styling parameters etc. where needed:
The catch is that I want the content to be arbitrary - sometimes it would simply be <xsl:apply-templates/>, sometimes it might be a call to another named template, or it might be a series of elements and text.
The closest I've got is by always calling <xsl:apply-templates/> within the template
e.g.
however, this isn't great since I want to be able to apply the style to anything, such as a call to a named template.
In order to solve this, I tried assigning the desired content to a variable, and passing that to the template. (I initally tried putting the content directly into the param and using <xsl:value-of select="$content"> in the named template, I'm not sure if this should be possible).
e.g.
However, this doesn't work, and it's very clunky considering how regularly I want to use it in my stylesheet anyway.
Here are some examples of how I'd ideally like to use it:
My basic question is - what's the closest I can get to the above usage? Perhaps I've missed something obvious, it seems like it should be more straightforward to do what I want.
Thanks in advance,
Iain.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Applying a named template to arbitrary content
Subject: Applying a named template to arbitrary content From: Iain Huxley <iain@xxxxxxxxxxxxx> Date: Sun, 12 Mar 2000 21:22:06 -0800 |
Hi --
I've spent a fair while searching for a solution to a seemingly simple problem, perhaps someone could help me out...
I'm trying to make a generic template which will, in effect, simply insert stuff before and after the content. In one case, I want to do it to apply font styling parameters etc. where needed:
e.g. ... <font size="4" color="#ffffff"> <b> ...content... </b> </font> ..
The catch is that I want the content to be arbitrary - sometimes it would simply be <xsl:apply-templates/>, sometimes it might be a call to another named template, or it might be a series of elements and text.
The closest I've got is by always calling <xsl:apply-templates/> within the template
e.g.
<xsl:template name="FontAppearance"> <font size="4" color="#ffffff"> <b> <xsl:apply-templates/> </b> </font> </xsl:template>
usage: <xsl:call-template name="FontAppearance"/>
however, this isn't great since I want to be able to apply the style to anything, such as a call to a named template.
In order to solve this, I tried assigning the desired content to a variable, and passing that to the template. (I initally tried putting the content directly into the param and using <xsl:value-of select="$content"> in the named template, I'm not sure if this should be possible).
e.g.
<xsl:template name="FontAppearance"> <xsl:param name="content"> <font size="4" color="#ffffff"> <b> <xsl:copy-of select="$content"/> </b> </font> </xsl:template>
usage: <xsl:variable name="foo"> <!-- content example - call index template --> <xsl:call-template name="Index"/> </xsl:variable> <xsl:call-template name="FontAppearance"> <xsl:param name="content"> <xsl:value-of select="$foo"> </xsl:param> </xsl:call-template>
However, this doesn't work, and it's very clunky considering how regularly I want to use it in my stylesheet anyway.
Here are some examples of how I'd ideally like to use it:
<xsl:call-template name="FontAppearance_Body1"> <!-- following would be inserted into the FontAppearance template --> <xsl:call-template name="Index"/> </xsl:call-template>
<xsl:call-template name="FontAppearance_Heading1"> <xsl:value-of select="Title"/> </xsl:call-template>
<xsl:call-template name="FontAppearance_Body2"> <xsl:apply-templates select="Sections"/> </xsl:call-template>
My basic question is - what's the closest I can get to the above usage? Perhaps I've missed something obvious, it seems like it should be more straightforward to do what I want.
Thanks in advance,
Iain.
//---------------------------------------------------- // Iain Huxley // President // Mindspike Technologies // http://mindspike.com // Ph: (510) 339 7789 //----------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
XSLT Market Need, Michael Laing | Thread | Re: Applying a named template to ar, Steve Tinney |
Re: sort, count, number, group, Steve Tinney | Date | RE: Unanswered queries, Kay Michael |
Month |