I am trying to iterate through a list of nodes in a node-set by index
using the position() function, and I am running into some
difficulties.
<xsl:for-each select="$set">
<xsl:text>Iteration #</xsl:text>
<xsl:value-of select="position()"/>
<xsl:text> is '</xsl:text>
<xsl:value-of select="$set[position()]"/>
<xsl:text>' </xsl:text>
</xsl:for-each>
Inside a predicate position() changes it's meaning. So you probably want
something like:
<xsl:for-each select="$set">
<xsl:variable name="pos" select="position()"/>
<xsl:text>Iteration #</xsl:text>
<xsl:value-of select="$pos"/>
<xsl:text> is '</xsl:text>
<xsl:value-of select="$set[$pos]"/>
<xsl:text>' </xsl:text>
</xsl:for-each>
Though it's still rather nonsensical since $set[$pos] is the same as
".", perhaps you wanted to index into some other node-set, e.g.
$set2[$pos]?
Michael Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list