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

Subject: RE: [xsl] Accessing node-sets by index with position()
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Tue, 23 Sep 2003 22:41:03 +0100
> 
> 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


Current Thread