Re: [xsl] position() in xsl:for-each

Subject: Re: [xsl] position() in xsl:for-each
From: Vidar Ramdal <vramdal@xxxxxxxxx>
Date: Fri, 9 Jul 2004 11:26:10 +0200
On Fri, 09 Jul 2004 12:03:13 +0300, George Cristian Bina <george@xxxxxxx> wrote:
>  > <objects>
>  >   <object name="name1" type="type1">data1</object>
>  >   <object name="name2" type="type1">data2</object>
>  >   <object name="name3" type="type1">data3</object>
>  >   <object name="name4" type="type1">data4</object>
>  >   <object name="name5" type="type2">data5</object>
>  >  </objects>
> 
> 
> <xsl:for-each select="object[@type='type1'][position() mod 2 = 1]"> will
> not select <object name="name4" type="type1">data4</object> as the
> context node. If you add a new type1 object before name5:
> 
> <objects>
>    <object name="name1" type="type1">data1</object>
>    <object name="name2" type="type1">data2</object>
>    <object name="name3" type="type1">data3</object>
>    <object name="name4" type="type1">data4</object>
>    <object name="nameX" type="type1">dataX</object>
>    <object name="name5" type="type2">data5</object>
> </objects>
> 
> then <object name="nameX" type="type1">dataX</object> will be selected
> as the context node and you will get data5 in the output. The
> following-sibling axis selects the following siblings of the context
> node. See http://www.w3.org/TR/xpath#axes

Thank you for clarifying this. Just to be sure I got it right:

What you're saying is that position() is relative to a node in the
input (original) XML tree, not to the nodes that I select with
xsl:for-each. Correct?

Does the same behaviour apply if I had used xsl:apply-templates
instead of xsl:for-each?

-- 
Vidar S. Ramdal
"Fighting for peace is like fucking for virginity"

Current Thread