Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Re: Collecting data in each line Options >Thread Next - Re: Collecting data in each line Options Re: Collecting data in each line OptionsTo: NULL Date: 6/26/2008 12:50:00 PM <heshamelesawy@g...> wrote in message news:3dc31f09-4c8e-42a8-b643-16a481d0b03c@m...... > On Jun 26, 10:35 am, "Joe Fawcett" <joefawc...@newsgroup.nospam> > wrote: >> <heshameles...@gmail.com> wrote in message >> >> news:c9937992-2f37-4d12-ba03-45c5b10dfd21@5...... >> >> >> >> > I need to write xsl document to collect data csv:field[4] for each >> > line groubing by >> > csv:field[1] >> >> > <csv:line> >> > <csv:field>48</csv:field> >> > <csv:field>20</csv:field> >> > <csv:field>6</csv:field> >> > <csv:field>6430</csv:field> >> > </csv:line> >> > <csv:line> >> > <csv:field>23</csv:field> >> > <csv:field>18</csv:field> >> > <csv:field>5</csv:field> >> > <csv:field>4621</csv:field> >> > </csv:line> >> > <csv:line> >> > <csv:field>48</csv:field> >> > <csv:field>23</csv:field> >> > <csv:field>198</csv:field> >> > <csv:field>5770</csv:field> >> > </csv:line> >> > <csv:line> >> > <csv:field>25</csv:field> >> > <csv:field>27</csv:field> >> > <csv:field>7</csv:field> >> > <csv:field>8873</csv:field> >> > </csv:line> >> >> In XSLT 2.0 use for-each-group, in XSLT 1.0 search for Muenchian >> Grouping. >> >> -- >> >> Joe Fawcett (MVP - XML)http://joe.fawcett.name- Hide quoted text - >> >> - Show quoted text - > > > Sorry for duplicted message but i was think the message is not in > right Topic > > I tried to do it like that > > <xsl:for-each-group select="csv:line" group-by="csv:field[1]"> > <xsl:element name="element"> > <xsl:attribute name="Id">ID</xsl:attribute> > <xsl:value-of select="csv:field[1]"/> > </xsl:element> > <xsl:element name="element"> > <xsl:attribute name="Id">Sum</xsl:attribute> > <xsl:value-of select="sum(csv:field[4])"/> > </xsl:element> > </xsl:for-each-group> > > but it didnt get the sum value its gust get the csv:field[4] for first > line only > Not exactly sure what you want but try this: <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:csv="http://tempuri.com" exclude-result-prefixes="csv"> <xsl:template match="/csv:data"> <output> <xsl:for-each-group select="csv:line" group-by="csv:field[1]"> <element Id="ID"> <xsl:value-of select="current-grouping-key()"/> </element> <element Id="Sum"> <xsl:value-of select="sum(current-group()/csv:field[4])"/> </element> </xsl:for-each-group> </output> </xsl:template> </xsl:stylesheet> against this xml: <csv:data xmlns:csv="http://tempuri.com"> <csv:line> <csv:field>48</csv:field> <csv:field>20</csv:field> <csv:field>6</csv:field> <csv:field>6430</csv:field> </csv:line> <csv:line> <csv:field>23</csv:field> <csv:field>18</csv:field> <csv:field>5</csv:field> <csv:field>4621</csv:field> </csv:line> <csv:line> <csv:field>48</csv:field> <csv:field>23</csv:field> <csv:field>198</csv:field> <csv:field>5770</csv:field> </csv:line> <csv:line> <csv:field>25</csv:field> <csv:field>27</csv:field> <csv:field>7</csv:field> <csv:field>8873</csv:field> </csv:line> </csv:data> -- Joe Fawcett (MVP - XML) http://joe.fawcett.name | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
