[xsl] simulating for with foreach

Subject: [xsl] simulating for with foreach
From: "Mohsen Saboorian" <mohsens@xxxxxxxxx>
Date: Wed, 5 Jul 2006 14:06:17 +0330
Thanks Mike, Thanks David,
to clarify my request, suppose I don't have needed sequence of nodes
anywhere, and want to access every 4 elements: 1, 5, 9, ... to the
end. Do I have to use <xsl:if test="position() mod 4 = 1", or there is
a more flexible way?


On 7/5/06, David Carlisle <davidc@xxxxxxxxx> wrote:

> but there are situations in which you can not use > position() because it doesn't give you the exact node (for example > when you have #text elements randomly beside <node>.

If you only want to iterate over elements, just select elements not text
nodes, then position() will give the position in the sequence of
selected items.

<xsl:for-each seelct="node[position() mod 2 =1]"

does what you want, I think.

David

Current Thread