Re: [xsl] sum partial of the text

Subject: Re: [xsl] sum partial of the text
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Thu, 6 Oct 2005 06:40:50 +1000
On 10/5/05, piming.kuo@xxxxxxxxxxxxx <piming.kuo@xxxxxxxxxxxxx> wrote:
>
> Is there any wavy to sum partial of the text? For example, I want to sum
> all substring(data,7,4) from the following:
>
> <segment>
>      <data>XXXYYY1000</data>
>      <data>XXXZZZ 100</data>
>      <data>SSSYYY1200</data>
> </segment>
>
> The result will be:
> 1000 + 100 + 1200 = 2300


Using FXSL 2.0 (2.0 means simply "for XSLT 2.0"),  this one-liner
computes the wanted sum:

       sum(
           f:map(f:double(),
                 data/translate(.,
                                translate(., '0123456789', ''),''
                                )
                 )
          )

Unfortunately, the following is not permitted in XSLT 2.0 :

       sum(data/translate(., translate(., '0123456789', ''),'')/xs:double(.))


Cheers,
Dimitre Novatchev

Current Thread