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

Re: [xsl] for-each select="position()"


Subject: Re: [xsl] for-each select="position()"
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Wed, 07 Feb 2007 00:17:30 +0100

John Cavalieri wrote:
The following appears to work with the latest Saxon in an XSLT v2 style sheet.
<xsl:for-each select="position()">


My take on this is that position() returns a number and that number is
then used in a sequence of one.  Am I understanding this correctly and
should this be how all XSLT v2 processors behave?

I am not 100%, but I think that position() returns a sequence of (1 or more) integers indicating the position of the element. For instance:


<xsl:for-each select="//position()">
  number: <xsl:value-of select="." />
</xsl:for-each>

will output all descendent-or-self element positions. And this:

<xsl:for-each select="position()">

will return the sequence of positions of the context node, always consisting of one item of xs:integer. Note, however, that it resembles, but is not the same, as:

<xsl:for-each select="self::node()/position()">
or
<xsl:for-each select="current()/position()">

which will both return 1, always.

-- Abel


Current Thread
Keywords