Ureader.com  
Microsoft software help and Community
   home   |   control panel login   |   archive   |  
 
XML
data.xmlanalysis
mappoint.webservice
msf
msxml-webrelease
netmyservices.sdk
passport.sdk
soap
soapsdk
uddi.general
uddi.programming
uddi.specification
xml
xmlsqlwebrelease
xsl
  
 
date: Wed, 25 Jun 2008 11:00:19 -0700 (PDT),    group: microsoft.public.xsl        back       


Collecting data in each line Options   
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>
date: Wed, 25 Jun 2008 11:00:19 -0700 (PDT)   author:   unknown

Re: Collecting data in each line Options   
wrote in message 
news:c9937992-2f37-4d12-ba03-45c5b10dfd21@59g2000hsb.googlegroups.com...
> 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
date: Thu, 26 Jun 2008 08:35:33 +0100   author:   Joe Fawcett am

Re: Collecting data in each line Options   
On Jun 26, 10:35 am, "Joe Fawcett" <joefawc...@newsgroup.nospam>
wrote:
>  wrote in message
>
> news:c9937992-2f37-4d12-ba03-45c5b10dfd21@59g2000hsb.googlegroups.com...
>
>
>
> > 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
date: Thu, 26 Jun 2008 02:53:32 -0700 (PDT)   author:   unknown

Re: Collecting data in each line Options   
wrote in message 
news:3dc31f09-4c8e-42a8-b643-16a481d0b03c@m73g2000hsh.googlegroups.com...
> On Jun 26, 10:35 am, "Joe Fawcett" <joefawc...@newsgroup.nospam>
> wrote:
>>  wrote in message
>>
>> news:c9937992-2f37-4d12-ba03-45c5b10dfd21@59g2000hsb.googlegroups.com...
>>
>>
>>
>> > 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
date: Thu, 26 Jun 2008 12:50:04 +0100   author:   Joe Fawcett am

Re: Collecting data in each line Options   
On Jun 26, 2:50 pm, "Joe Fawcett" <joefawc...@newsgroup.nospam> wrote:
>  wrote in message
>
> news:3dc31f09-4c8e-42a8-b643-16a481d0b03c@m73g2000hsh.googlegroups.com...
>
>
>
> > On Jun 26, 10:35 am, "Joe Fawcett" <joefawc...@newsgroup.nospam>
> > wrote:
> >>  wrote in message
>
> >>news:c9937992-2f37-4d12-ba03-45c5b10dfd21@59g2000hsb.googlegroups.com..> >> > 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- Hide quoted text -
>
> - Show quoted text -


It’s Working
Thanks for help

I have another question.
For each element in the group I need to get ceiling of divide
operation then get the summation for group element
I tried this code but it’s doesn’t work

<xsl:value-of select="sum(ceiling(current-group()/csv:field[4] div
1000))"/>
date: Thu, 26 Jun 2008 10:51:36 -0700 (PDT)   author:   unknown

Google
 
Web ureader.com


    COPYRIGHT 2007, YARDI TECHNOLOGY LIMITED, ALL RIGHT RESERVE  |   contact us