RE: [xsl] Reading value of passed variable

Subject: RE: [xsl] Reading value of passed variable
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Thu, 17 Jun 2004 07:58:09 +0100
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
it.

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:  http://www.mulberrytech.com/xsl/xsl-list
> To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
> or e-mail: <mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx>
> --+--
> 
> 


Current Thread