Re: [xsl] sum function

Subject: Re: [xsl] sum function
From: Jörg Heinicke <joerg.heinicke@xxxxxx>
Date: Fri, 16 Nov 2001 18:51:53 +0100
You said already the solution. Numbers may not be written with ',' in XSLT. If you definitely want the ',', you must wrote a stylesheet with recursive templates, which removes the ',' while adding this value to temporary sum.

This problem we had a few days ago on the XSLTalk-list. I gave following solution:

<xsl:template match="amounts">
<xsl:variable name="sum">
<xsl:apply-templates select="amount[1]"/>
<xsl:value-of select="$sum"/>

<xsl:template match="amount">
<xsl:param name="sum" select="0"/>
<xsl:apply-templates select="following-sibling::amount[1]">
<xsl:with-param name="sum" select="$sum + number(substring-after(.,'&#xA3;'))"/>
<xsl:if test="not(following-sibling::amount[1])">
<xsl:value-of select="$sum + number(substring-after(.,'&#xA3;'))"/>

You must only replace the 'amount' by 'Amount' and the 'substring-after(.,'&#xA3;')' by 'translate(.,',','')'.

Hope this helps,


Hesselberth, Jan wrote:

How do I use the sum function on xml such as:


If I use Total Price = <xsl:value-of select="sum(//Amount)"/> I get the
result NaN. However, if the data does not contain ',' the sum works
Any help appreciated.


System Development
Fon +49(0)341-979-7435
Fax +49(0)341-979-7409

XSL-List info and archive:

Current Thread