Re: [xsl] simulating for with foreach

Subject: Re: [xsl] simulating for with foreach
From: "Mohsen Saboorian" <mohsens@xxxxxxxxx>
Date: Wed, 5 Jul 2006 15:22:06 +0330
Thank you very much. That fully solved my problem, but just for my
curiosity, why position() (and also last()) do return sequential
numbers instead of real positions. I mean position() returns 1, 2, 3
instead of 1, 4, 9...

Thanks.

Well as I said in my reply, normally you _want_ position() to go in that
sequence so you can number the output, check for the last item using
position()=last() etc.

So either you keep position() that way and just calculate the old
position by inverting the formula, (position()-1)*4+1 in this case
or you do as you originally did and select them all and use xsl:if just
to process teh opnes you want.

<xsl:for-each select="nodes">
<xsl:if test="position() mod 4 = 1">
 ...

then inside the xsl:if position() will be 1,5,...

really I'm not sure what the problem is that you are having, since it
seems like the final preferred answer is the code you started with?

David

Current Thread