Re: [xsl] Increasing a numerical value in a for-each loop

Subject: Re: [xsl] Increasing a numerical value in a for-each loop
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Mon, 21 May 2007 15:41:22 +0100
On 5/21/07, Smar Kjartan Yasin <omar@xxxxxxx> wrote:
Good day,

I've been going through this mailing list and trying to figure out a way
to increase a numerical value in a for-each loop. I know I can't use a
variable since I can't change its value after it's been set.

The code:
--snip--
<xsl:for-each select="//Ticket">
   <xsl:choose>
     <xsl:when test="position() mod 2 = 1">
       DIR 4:PP <xsl:value-of select="165 + increment"/>,<xsl:value-of
select="230 + //offsets/x"/>:FT "Swiss 721 BT",8:PT "23. mam 2007"
     </xsl:when>
     <xsl:otherwise>
       DIR 4:PP <xsl:value-of select="165 + increment"/>,<xsl:value-of
select="515 + //offsets/x"/>:FT "Swiss 721 BT",8:PT "28. mam 2007"
     </xsl:otherwise>
   </xsl:choose>
</xsl:for-each>
--/snip--

As you can see I'm now using position() to alternate between odd and
even elements, but I need to increment 165 by 35 each time the for-each
loop is run.
I know I can use a template to increment a variable but I don't think
that's "The XSL-way".

How about:


165 + (position() * 35)

cheers
andrew

Current Thread