Subject: Re: [xsl] XSLT2, select nodes inside a tokenize()'d variable From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx> Date: Wed, 20 Dec 2006 14:01:03 +0000 |
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.
No, this is the right way - you just need to maintain a pointer the content node (or root) outside of the tokenize, for example:
<xsl:template name="makeSegLabel"> <xsl:variable name="ana" select="tokenize(@ana, '(\s+)')"/> <xsl:variable name="this" select="."/> <xsl:for-each select="$ana"> <xsl:value-of select="$this"/>
<xsl:variable name="ana" select="tokenize(@ana, '(\s+)')"/> <xsl:value-of select="for $x in $ana return string-join(concat($x,':', key('cat-by-id', $x)/catDesc), ', ')"/>
cheers andrew
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSLT2, select nodes inside a , James Cummings | Thread | Re: [xsl] XSLT2, select nodes insid, Florent Georges |
[xsl] XSLT2, select nodes inside a , James Cummings | Date | Re: [xsl] XSLT2, select nodes insid, Florent Georges |
Month |