|
Subject: RE: [xsl] Incrementing a variable in XSL From: "Roger Glover" <glover_roger@xxxxxxxxx> Date: Thu, 16 Jan 2003 00:50:44 -0600 |
Ken Ross wrote:
> In short you can't.
>
> You can simulate it by using <xsl:value-of
> select="count(preceding::a)+1"/>.
Wouldn't something like this (admittedly ad hoc, untested code) work too?
<xsl:template match="docroot">
<xsl:variable name="var">1</xsl:variable>
<xsl:apply-templates select="a[1]" mode="tailRecurseSibs"/>
</xsl:template>
<xsl:template match="a" mode="tailRecurseSibs">
<xsl:param name="var" select="1"/>
<xsl:value-of select="$var"/>
<xsl:apply-templates select="following-sibling::a"
mode="tailRecurseSibs">
<xsl:with-param name="var" select="$var + 1"/>
</xsl:apply-templates>
</xsl:template>
In other words, while direct iteration using a variable will not allow the
desired operation, tail recursion using a parameter should. Right?
-- Roger Glover
glover_roger@xxxxxxxxx
> -----Original Message-----
> From: Mukul [mailto:mukulw3@xxxxxxxxx]
> Sent: Thursday, 16 January 2003 3:37 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Incrementing a variable in XSL
>
>
> Hello ,
> I have a simple XML file as below:
> <?xml version="1.0" encoding="UTF-8"?>
> <docroot>
> <a>1</a>
> <a>2</a>
> <a>3</a>
> <a>4</a>
> </docroot>
>
> I have written a XSL stylesheet as below:
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
> <xsl:template match="docroot">
> <xsl:variable name="var">1</xsl:variable>
> <xsl:for-each select="a">
> <xsl:value-of select="$var"/>
> <!-- incrementing $var ?? -->
> </xsl:for-each>
> </xsl:template>
> </xsl:stylesheet>
>
> I want to increment a variable in <xsl:for-each ..,
> and print it with <xsl:value-of ..
>
> There is a situation where in the XML file, a tag
> repeats and I want to output the no's 1, 2, 3 etc in
> the output with each tag instance.
>
> How can I do this?
>
> Regards,
> Mukul
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Incrementing a variable i, Mukul | Thread | RE: [xsl] Incrementing a variable i, Roger Glover |
| Re: [xsl] Incrementing a variable i, Dimitre Novatchev | Date | RE: [xsl] Incrementing a variable i, Ross Ken |
| Month |