RE: [xsl] referring to variables using variables?

Subject: RE: [xsl] referring to variables using variables?
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Mon, 12 Jan 2004 15:51:08 -0000
XSLT is not a macro language. The content of a variable is a value
(either a boolean, a string, a number, or a node-set). It is not part of
the text of an XPath expression. I think this is where your confusion
comes from.

For example, if $x contains the string 'xyz', then $x/pqr does not mean
xyz/pqr, it means 'xyz'/pqr, which is an error: the operands of the "/"
operator must be node-sets, not strings. 

Michael Kay

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> james walker
> Sent: 12 January 2004 13:56
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] referring to variables using variables?
> 
> 
> I am trying to access different xml documents where the 
> variable name of the 
> document (declared at the top of the file) is equal to the 
> category name of 
> the file being translated:
> e.g. given this xslt:
> 
> <xsl:stylesheet version="1.0" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
> <xsl:variable name="jaka" select="document('http:......')" /> 
> <xsl:variable name="foobar" select="document('http:......')" />
> 
> <xsl:template match="category">
> <xsl:variable name="catname" select="name" />
> <xsl:for-each select="$catname/root/child::*)"> 
> <li><xsl:value-of select="detail" /></li> </xsl:for-each> 
> <xsl:apply-templates select="./category" /> </xsl:template> 
> </xsl:stylesheet>
> 
> I translated this with file1.xml which contained the two 
> category names jaka 
> aand foobar. i have named the categories in the file1.xml to 
> be $foobar and 
> $jaka so when $catname is substitued into 
> $catname/root/child::* it should 
> look like $foobar/root/child::* for foobar categoyr and 
> $jaka/root/child::* 
> for jaka category.
> 
> However, when i translate it, it doesnt seem to show anything 
> when it gets 
> to the xpath staement $catname/root/child::*.
> I tested to see if it works when u put the variable name 
> directly in there 
> and it does (e.g. putting  $foobar/root/child::* )??
> Does anyone know if i am close to the solution (am i making a 
> silly mistake 
> with variable decalration?0
> cheers
> james walker
> 
> _________________________________________________________________
> Express yourself with cool emoticons - download MSN Messenger today! 
> http://www.msn.co.uk/messenger
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread