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

Subject: Re: [xsl] for-each select="position()"
From: Abel Braaksma <>
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="." />

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()">
<xsl:for-each select="current()/position()">

which will both return 1, always.

-- Abel

Current Thread