Probably your XML is something like this:
<root>
<a name="1">
<b>
<c/>
</b>
<b>
<c/>
</b>
</a>
<a name="2">
<b>
<c/>
</b>
<b>
<c/>
</b>
<b>
<c/>
</b>
</a>
<a name="3">
<b>
<c/>
</b>
<b>
<c/>
</b>
<b>
<c/>
</b>
<b>
<c/>
</b>
</a>
</root>
The following stylesheet when applied to the above XML:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:template match="/root">
<xsl:for-each select="a">
<xsl:for-each select=".//c">
<xsl:value-of select="position()" /><xsl:text>
</xsl:text>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Produces output:
1
2
1
2
3
1
2
3
4
If this is not what you need, please provide more details.
On 10/2/06, Jonathan Marenus <jonathanmarenus(_at_)yahoo(_dot_)com> wrote:
Hi there,
I have the following XML structure:
<a name="1">
..
..
..
</a>
<a name="2">
..
..
..
</a>
I have repeatable b and c elements within each a (c
within b).
My XSL consists of a for-each "a". My goal is to have
an incremented value for each c where a[(_at_)name="1"] and
then start over with the next a where @name="2".
Put simply, I need to reset the incrementing when the
attribute for a changes value.
Right now, I am using the position function for c, but
the problem with that is it starts over when I have a
new b, not a new a, since c is within b.
Any help would be appreciated.
Best Regards,
Jonathan Marenus
--
Regards,
Mukul Gandhi
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--