[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

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 20:20:29 -0000

I would suggest:

<xsl:variable name="index">
  <foobar>http:......</foobar>
  <jaka>http:....</jaka>
</xsl:variable>

<xsl:variable name="nsindex" select="xx:node-set($index)/*"/>

<xsl:template match="category">
  <xsl:variable name="catname" select="name" />
  
  <xsl:for-each
select="document($nsindex/*[name()=$catname])/root/child::*)">

Michael Kay



> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> james walker
> Sent: 12 January 2004 16:15
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] referring to variables using variables?
> 
> 
> 
> Is there anyway that i can achieve the same solution but in a 
> slightly 
> different way?
> 
> thanks james walker
> 
> 
> >From: "Michael Kay" <mhk@xxxxxxxxx>
> >Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> >Subject: RE: [xsl] referring to variables using variables?
> >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
> >
> 
> 
> _________________________________________________________________
> Find a cheaper internet access deal - choose one to suit you. 
> http://www.msn.co.uk/internetaccess
> 
> 
>  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
Keywords