This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: the difference between xsl:variable and xsl:param
- From: Trevor Nash <tcn at melvaig dot co dot uk>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Tue, 12 Feb 2002 13:56:27 +0000
- Subject: Re: [xsl] the difference between xsl:variable and xsl:param
- Organization: Melvaig Software Engineering Limited
- References: <F221vEzNIEok6GFhR9l00017bb2@hotmail.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Kit,
>Hi, can everyone tell me the difference between xml:param and xml:variable,
>i got pretty confused over the use of the two.
I think you mean xsl:param and xsl:variable.
The important difference is that the value of an xsl:param could be
set outside the context in which it is declared. For example if you
see:
<xsl:template ...>
<xsl:param name="p" select="'x'" />
<xsl:variable name="v" select="'y'" />
...
then you know that $v will always give you the string 'y' (note the
double set of quotes). But for $p the string 'x' is only a default:
you will see a different value if the template is invoked with either
xsl:apply-templates or xsl:call-template which contains an instruction
such as:
<xsl:with-param name="p" select="'not x'" />
<xsl:param> may also be used outside xsl:template, at the top level in
the stylesheet. The value of such a parameter may be set when the
XSLT processor is called. How this is done depends on the processor
and whether you call it from the command line or by program.
> Secondly, can anyone tell me
>how to pass a variable to an xsl (e.g. <xsl:template
>match=".//c="?variable"/> where as ?variable is pass down to the stylesheet
>through javascript.
I am not sure what you are trying to do with that match pattern. What
do you think it means?
Given something like
<xsl:stylesheet ...>
<xsl:param name="variable" />
<xsl:template match="c[. = $variable]" ...
With Saxon from the command line you would say:
saxon in.xml style.xsl variable=z
to select all c nodes whose content was 'z' , e.g.
<c>z</c>
To see how to do this from Javascript, have a look at the
documentation for your processor.
Regards,
Trevor Nash
--
Traditional training & distance learning,
Consultancy by email
Melvaig Software Engineering Limited
voice: +44 (0) 1445 771 271
email: tcn@melvaig.co.uk
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list