Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: [xsl] reset increment on attribute value change

From: "Mukul Gandhi" <gandhi.mukul@--------->
To:
Date: 10/2/2006 12:39:00 PM
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>&#xa;</xsl:text>
   </xsl:for-each>
   <xsl:text>&#xa;</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@xxxxxxxxx> 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[@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


transparent
Print
Mail
Digg
delicious
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent