This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: the difference between xsl:variable and xsl:param


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]