This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: how to pass parameters (msxml/xt/Saxon)
- To: xsl-list at mulberrytech dot com
- Subject: Re: how to pass parameters (msxml/xt/Saxon)
- From: David Carlisle <davidc at nag dot co dot uk>
- Date: Tue, 17 Oct 2000 15:24:44 GMT
- References: <5B9DAE325E99D311953B00A0C9E021112188F9@ENSMAIL1>
- Reply-To: xsl-list at mulberrytech dot com
parameters (and modes) don't get automatically passed on.
So here:
<xsl:template match="/">
<!-- ... -->
<xsl:apply-templates mode="Xrevised">
<xsl:with-param name="xyz" select="1234"/>
</xsl:apply-templates>
<!-- ... -->
</xsl:template>
you apply templates with a parameter.
If it is a well formed document then there will not be text
as the child of the root. So this template
<xsl:template match="text()" mode="Xrevised">
<xsl:param name="xyz"/><!--<xsl:param name="xyz" select="678"/>-->
<xsl:text>template output:</xsl:text><br />
<xsl:value-of select="$xyz"/> <br />
</xsl:template>
will not match any nodes selected by the above apply-templates.
It would eventually match if for example you also
had a template of the form
<xsl:template match="f*" mode="Xrevised">
<xsl:param name="xyz"/>
<xsl:apply-templates mode="Xrevised">
<xsl:with-param name="xyz" select="$xyz"/>
</xsl:apply-templates>
</xsl:template>
so that by default apply templates to an element in the given mode
caused templates to be applied to child nodes with the same mode and
parameter.
David
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list