xsl-list
[Top] [All Lists]

[xsl] summing attributes problem

2006-10-27 19:54:55
Hi ya'll,
I have a source file as such:
<alldata>
 <load>
 <start>04/01/06 06:00</start>
 <stop>04/01/06 07:30</stop>
 <loadnum>300382</loadnum>
 </load>
 <po num="9865900" cases="206" />
 <po num="9872940" cases="5" />
 <po num="9877320" cases="290" />
 <po num="9880590" cases="450" />
 <po num="9880600" cases="418" />
 <po num="9886650" cases="282" />
 <load>
 <start>04/01/06 06:00</start>
 <stop>04/01/06 07:30</stop>
 <loadnum>300166</loadnum>
 </load>
 <po num="9873530" cases="630" />
 <po num="9880740" cases="1008" />
...
</alldata>
I want to group the po elements with their previous sibling load and sum the @cases to get:

 <load>
   <loadnum>300382</loadnum>
   <start>04/01/06 06:00</start>
   <stop>04/01/06 07:30</stop>
   <po num="9865900" cases="206" />
   <po num="9872940" cases="5" />
   <po num="9877320" cases="290" />
   <po num="9880590" cases="450" />
   <po num="9880600" cases="418" />
   <po num="9886650" cases="282" />
   <total>1651</total>
 </load>
 <load>
   <loadnum>300166</loadnum>
   <start>04/01/06 06:00</start>
   <stop>04/01/06 07:30</stop>
   <po num="9873530" cases="630" />
   <po num="9880740" cases="1008" />
   <total>1638</total>
 </load>

But when I use the following stylesheet, the @cases don't sum and I get the following error using Saxon8.7
FORG0001: Can not convert string "" to a double...
If I replace "sum" with "count" then it works.

<xsl:output method="xml"/>
<xsl:template match="/cases">
<alldata>
  <xsl:for-each-group select="*" group-starting-with="load">
  <load>
  <xsl:copy-of select="loadnum"/>
  <xsl:copy-of select="start"/>
  <xsl:copy-of select="stop"/>

  <xsl:copy-of select="current-group()[self::po]"/>
<total><xsl:value-of select="sum(current-group()[self::po/@cases])"/></total>
  </load>
  </xsl:for-each-group>
</alldata>
</xsl:template>
</xsl:stylesheet>

Obviously I am using xslt2.0. Can someone explain what I am doing wrong? TIA

--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>