[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] (How) can I randomly access the result of a
Subject: RE: [xsl] (How) can I randomly access the result of a <xsl:for-each select="...?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 14 Oct 2005 18:31:24 +0100
|
First, you put the result in a variable:
<xsl:variable name="x">
<xsl:for-each select=...
<something/>
</xsl:for-each>
</xsl:variable>
In XSLT 1.0, to address into this variable, you need the xx:node-set()
extension (in your case, xalan:nodeset()).
In 2.0, you can use it directly.
<xsl:variable name="evens" as="xs:integer*">
<xsl:for-each select="1 to 100">
<xsl:sequence select=". * 2"/>
</xsl:for-each>
</xsl:variable>
<xsl:value-of select="$evens[5]"/>
Though for this example it's easier to use an XPath "for" expression.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Ferdinand Soethe [mailto:xsl-list@xxxxxxxxxx]
> Sent: 14 October 2005 18:18
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] (How) can I randomly access the result of a
> <xsl:for-each select="...?
>
> Perhaps I have searched for the wrong key words ...
>
> Is it possible to randomly access each member of the set of nodes
> created by <xsl:for-each select="... I know I can find the position of
> the currently processed node with position() and use the first() and
> last() to access the respective nodes. But can I also access each
> individual member with something like xyz[memberNo]?
>
> I figure that there should be a 'root' element that contains the set
> but I haven't found a way to address that.
>
> Btw: I'm using xalan-J
>
> Thanks a lot.
>
> --
> Ferdinand Soethe