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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] referring to variables using , james walker | Thread | RE: [xsl] referring to variables us, james walker |
Re: [xsl] Attempting *not* to copy , David Carlisle | Date | [xsl] RE: [Counting elements], Michael Kay |
Month |