RE: [xsl] Increment value by group

Subject: RE: [xsl] Increment value by group
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 11 Jan 2006 16:44:20 -0000
You'll have to explain more clearly. I can't see any relationship between
the four jobs in your input and the five jobs in your output.

Michael Kay
http://www.saxonica.com/
 

> -----Original Message-----
> From: watchstone@xxxxxxxxxxx [mailto:watchstone@xxxxxxxxxxx] 
> Sent: 11 January 2006 16:18
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Increment value by group
> 
> Hello:  I want to process nodes based on grouping by 
> <quantity>. The  <increment> element is used as a running 
> "total" based on grouping.  So basically, when <quantity> is 
> "1", I want to process all of them as a group and use the 
> <increment> value to produce an output like this:
> 
> 1/1-3 (i.e. <increment> value is "3")
> 1/4-5 (i.e. <increment> value if "2" but starts with 
> preceding <increment value)
> 
> When <quantity> changes, I want the <increment> value to also 
> start over with "1".
> 
> Can I use <xsl:for-each-group> or some such element to 
> accomplish this.
> 
> <?xml version="1.0"?>
> <document>
> <job>
> <quantity>1</quantity>
> <increment>3</increment>
> </job>
> <job>
> <quantity>1</quantity>
> <increment>2</increment>
> </job>
> <job>
> <quantity>2</quantity>
> <increment>4</increment>
> </job>
> <job>
> <quantity>2</quantity>
> <increment>1</increment>
> </job>
> </document>
> 
> Desired output:
> 
> <document>
> <job>
> <status>1/1-3</status>
> </job>
> <job>
> <status>1/4-5</status>
> </job>
> <job>
> <status>1/6</status>
> </job>
> <job>
> <status>2/1-4</status>
> </job>
> <job>
> <status>2/5</status>
> </job>
> </document>

Current Thread