This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Increment a Value in xsl:for-each
- To: "Raj Avula" <raj_avula at hotmail dot com>
- Subject: Re: [xsl] Increment a Value in xsl:for-each
- From: Jeni Tennison <mail at jenitennison dot com>
- Date: Thu, 8 Mar 2001 22:06:04 +0000
- CC: xsl-list at lists dot mulberrytech dot com
- Organization: Jeni Tennison Consulting Ltd
- References: <003301c0a803$9e8af910$d6a8a8c0@monsterdaata.com><OE20w5fqghzKDjnj7LX000014d6@hotmail.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
Hi Raj,
> In xsl:for-each I have to read first Address and First City for the
> first time, Second Address and second City second time and so on.
>
> My XSL template is
>
> <xsl:variable name="iCount" select="1"/>
>
> <xsl:for-each select="Address">
> <xsl:value-of select="Address"/>
> <xsl:value-of select=../City[position()=$iCount"/>
> </xsl:for-each>
>
> I have to increment iCount in for loop.
>
> Can you please tell me how can I increment iCount in for-each loop.
XSLT doesn't allow you to increment variables. There are usually
other ways to do what you need to do, and there is in this case.
Use xsl:for-each to iterate over the Address elements and then use the
position() of the Address to index into the City elements:
<xsl:for-each select="Address">
<xsl:variable name="iCount" select="position()" />
<xsl:value-of select="." />
<xsl:value-of select="../City[$iCount]" />
</xsl:for-each>
Two things to note here: first, the Address element that you're
looking at within the xsl:for-each is the current node within the
xsl:for-each. In your xsl:for-each, you're getting the value of the
child Address element of the current Address element - I don't
think you have nested Address elements, so I don't think that's what
you wanted.
The other thing to note is that $iCount is a number, so there's no
need to test whether the position() of the node equals it - you can
just put the number as the value of the predicate and the nodes will
automatically be filtered by position().
I hope that helps,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list