RE: [xsl] XSLT2, select nodes inside a tokenize()'d variable

Subject: RE: [xsl] XSLT2, select nodes inside a tokenize()'d variable
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 20 Dec 2006 14:08:10 -0000
Just bind a variable outisde the for-each, and use that:

<xsl:template name="makeSegLabel">
 <xsl:variable name="this" select="."/>
 <xsl:variable name="ana" select="tokenize(@ana, '(\s+)')"/> 
  <xsl:for-each select="$ana">
    <xsl:value-of select="$this"/><xsl:text>:</xsl:text>
    <xsl:value-of select="root($this)//category[@id = $this]/catDesc"/> 
  </xsl:for-each> 
</xsl:template> 

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: James Cummings [mailto:cummings.james@xxxxxxxxx] 
> Sent: 20 December 2006 13:52
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] XSLT2, select nodes inside a tokenize()'d variable
> 
> Hiya,  I'm sure I'm just looking at this upside down, but here goes:
> 
> I want to do something like this:
> 
> <xsl:template name="makeSegLabel">
> <xsl:variable name="ana" select="tokenize(@ana, '(\s+)')"/> 
> <xsl:for-each select="$ana">
>   <xsl:value-of select="."/><xsl:text>:</xsl:text>
>   <xsl:value-of select="//category[@id = .]/catDesc"/> 
> </xsl:for-each> </xsl:template>
> 
> Where I want to tokenize the ana attribute on the element 
> which called this template, and then for each whitespace 
> separated value, I want to put it out, and then go get a 
> description of what that value means from elsewhere in the document.
> 
> However, I'm rightly told that I cannot select a node here 
> because the context is an atomic value.
> 
> I'm sure I'm being stupid and there is a better way to do this.
> 
> Suggestions?
> 
> Many thanks,
> -James
> --
> James Cummings, Cummings dot James at GMail dot com

Current Thread