Subject: Re: [xsl] call-template can't find the template? From: "J.Pietschmann" <j3322ptm@xxxxxxxx> Date: Mon, 24 Jun 2002 22:31:03 +0200 |
I'm having trouble with the call-template element....
Here's how I'm using it in my stylesheet:
<!-- p template --> <xsl:template match="p"> <xsl:text /><xsl:apply-templates /><xsl:text/> </xsl:template>
<!-- bu template --> <xsl:template match="bu"> - <xsl:call-template name="p" /> </xsl:template>
Yet if I call Xalan (1.3 on Linux), I get this error:...
XSLT error: Could not find named template., style tree node:
What confuses me is how Xalan says it can't find the template when it's there.
That's because you confused named templates and templates matching elements. You use <xsl:apply-templates select="p"/> to tell the processor to apply tepleates to the elements you have selected. You use xsl:call-template for calling a named template, i.e. one declared for example as <xsl:template name="p"> ... stuff ... </xsl:template>
You can have both a match and a name on a template, though this is a bit unconventional.
In your case, adding a name="p" to the template with match='p' appears to do what you want, apart from:
> <xsl:template match="p"> > <xsl:text /><xsl:apply-templates /><xsl:text/> > </xsl:template>
The <xsl:text/> are no-ops the way they are applied. If you strip them, the template becomes: <xsl:template match="p"> <xsl:apply-templates /> </xsl:template> Calling this after adding a name is the same as using xsl:apply-templates in the ssame place where you call it. Furthermore, the template does exactly the same as the built-in template matching p, so you can omit it completely.
Furthermore > Xalan (1.3 on Linux), Upgrading to a more recent version is strongly recommended. 2.3.1 is available.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] call-template can't find the , Greg Kushmerek | Thread | Re: [xsl] call-template can't find , Greg Kushmerek |
[xsl] XSL Processor, CROFT, MICHAEL | Date | Re: [xsl] Using Count() conditional, J.Pietschmann |
Month |