Hello Ismael,
the template
<xsl:template match="/">
<xsl:for-each select="traps/trap">
<xsl:sort select="./@id"/>
<xsl:value-of select="@id"/>
</xsl:for-each>
</xsl:template>
does the same like your one. But you called your variable
distinctValues, so I assume you *want* distinct values. Then it is a
grouping problem and the most propagated method is the Muenchian one:
<xsl:key name="traps" match="trap" use="@id"/>
<xsl:template match="/traps">
<xsl:for-each select="trap[generate-id() =
generate-id(key('traps', @id))]">
<xsl:sort select="@id"/>
<xsl:value-of select="@id"/>
</xsl:for-each>
</xsl:template>
And the most propagated web resource relating to Muenchian Method is
http://www.jenitennison.com/xslt/grouping/muenchian.xml.
Regards,
Joerg
Cams Ismael wrote:
Hello,
is it possible to put a nodeset in a variable.
What I try to do is the following. I have an xml file which I want to group.
This resulting tree I want to put in a variable so I can use it later on.
E.g.
<traps>
<trap id="5"/>
<trap id="6"/>
<trap id="2"/>
<trap id="5"/>
</traps>
<xsl:variable name="distinctValues">
<traps>
<xsl:for-each select="traps/trap">
<xsl:sort select="./@id"/>
<xsl:copy-of select="."/>
</xsl:for-each>
</traps>
</xsl:variable>
<xsl:template match="/">
<xsl:for-each select="$distinctValues/trap">
<xsl:value-of select="@id"/>
</xsl:for-each>
</xsl:template>
When I try to do this I get following error:
Expression must evaluate to a node-set.
Can somebody give me a hint if this is possible ?
Kind regards,
Ismaël
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list