xsl-list
[Top] [All Lists]

RE: Accessing node-sets by index with position()

2003-09-23 14:41:03

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>'&#10;</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>'&#10;</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