Re: [xsl] Sum produces NaN

Subject: Re: [xsl] Sum produces NaN
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 13 Sep 2004 17:27:19 -0400
At 2004-09-13 16:00 +0100, James Steven wrote:
To add a column of numbers I am using the xsl below.  However if there is
one value missing in the column then the xsl produces NaN.

You need to add a predicate to that which is being summed. A few examples have been given to you regarding testing a field for being empty, but if you have bad data, the field will not be the empty string and the sum will still fail.


To only sum those values that are numbers, I would use:

sum(/a/b/data[number()=number()])

This takes advantage of the principle that NaN != NaN ... thus only those data elements that successfully convert to a number will ever be equal to themselves, so they can be used for the sum.

I hope this helps.

..................... Ken

--
World-wide on-site corporate, govt. & user group XML/XSL training.
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Breast Cancer Awareness  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal

Current Thread