RE: [xsl] Reading value of passed variable

Subject: RE: [xsl] Reading value of passed variable
From: Pieter Reint Siegers Kort <pieter.siegers@xxxxxxxxxxx>
Date: Thu, 17 Jun 2004 08:08:36 -0500
It may be because there's no good FAQ about it? Or could it better be done
by Xpointer technology? Extensions are fine and show the goodwill of
implementors but they are not portable.


-----Original Message-----
From: Michael Kay [mailto:mhk@xxxxxxxxx] 
Sent: Thursday, June 17, 2004 1:58 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] Reading value of passed variable

Wow, that's the fourth time this question has been asked in two days. Does
no-one lurk before posting questions nowadays?

Standard XSLT doesn't allow you to access variables in this way any more
than C or Java do. It's not an introspective language.

Some products (Saxon, Xalan) have an xx:evaluate extension that lets you do

However, it's usually the wrong thing to do. If you have three variables a,
b and c and you don't know statically which one you want, then you should
probably have a single variable X whose value is an XML tree containing a,
b, and c as elements. You can then access the elements using standard path
expressions - including the dynamic form //*[name()=$var].

Michael Kay 

> -----Original Message-----
> From: Mayo [mailto:mayo@xxxxxxx]
> Sent: 16 June 2004 23:32
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Reading value of passed variable
> Hello,
> I'm trying to read value of a variable who's name is passed to the 
> xslt processor as argument.
> My source file has something like:
> <var name="$somevar"/>
> The variable $xsltvar will be defined at the processor's runtime, so 
> it has some value ("test" just for the sake of example - as if 
> <xsl:variable name="somevar" select="'test'"/> was used). Now what I'm 
> trying to do is to have xslt output the value of this variable.
> I've tried using <value-of select=""> with selecting the name 
> attribute from the var node, but to no avail.
> <xsl:template match="var">
>      <xsl:value-of select="@name"/>
> </xsl:template>
> This, naturally, prints out the name of the variable ("$somevar"), but 
> I can't get the actual value of the variable.
> any ideas?
> Thanks,
> Mayo
> --+------------------------------------------------------------------
> XSL-List info and archive:
> To unsubscribe, go to:
> or e-mail: <mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx>
> --+--

XSL-List info and archive:
To unsubscribe, go to:
or e-mail: <mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx>

Current Thread