RE: [xsl] removing comma from within sum command

Subject: RE: [xsl] removing comma from within sum command
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 1 Dec 2004 16:12:18 -0000
This is the equivalent of the classic "sum of price
times quantity for all items". Solutions include:

(a) write a recursive named template
(b) (Saxon extension) saxon:sum(//item, saxon:expression("@price * @qty"))
(c) (XSLT 2.0, Saxon 8) sum(for $i in //item return $i/@price * $i/@qty) 
(c2) (next Saxon release) sum(//item/(@price * @qty))
(d) Dimitre's FXSL library (fxsl.sourceforge.net)
(e) create a temporary tree containing the values you want to sum, then use
sum(xx:node-set($temp/values))

In your case, replace "price * quantity" with "translate(., ',', '')".

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

> -----Original Message-----
> From: dmitrik@xxxxxxxxxxxxxx [mailto:dmitrik@xxxxxxxxxxxxxx] 
> Sent: 01 December 2004 15:05
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] removing comma from within sum command
> 
> Is there a way to remove commas from the Charge node in this select?
> placing translate around charge seems to cause an error.: " 
> NodeTest expected here."
> 
> <xsl:value-of select="format-number(sum(Trade/Step
>    
> [concat(substring(MinFlowDate,7),substring(MinFlowDate,1,2),su
> bstring(MinFlowDate,4,2))&gt;=
> concat(substring($global,7)+3,substring($global,1,2),substring
> ($global,4,2))]
> 
>    
> [concat(substring(MinFlowDate,7),substring(MinFlowDate,1,2),su
> bstring(MinFlowDate,4,2))&lt;
> concat(substring($global,7)+6,substring($global,1,2),substring
> ($global,4,2))]
>    /Charge), '###,###,##0')"/>
> 
> 
> 
> Thanks,
> Dmitri

Current Thread