Name
sum()
Converts all nodes in the argument node-set to numbers, and then returns the sum of all of those numbers.
Syntax
[1.0] numbersum(
node-set
)
[2.0] xs:anyAtomicTypesum(
xs:anyAtomicType
)
[2.0] xs:anyAtomicTypesum(
xs:anyAtomicType
,$empty as xs:anyAtomicType
)
Inputs
[1.0] A node-set. Any node in the
node-set that is not a number is converted to a number as if it
were passed to the number()
function, after which the numeric values of all of the nodes are
summed.
[2.0] A sequence of atomic values, plus
an optional value that is returned when the first argument to
sum()
is the empty
sequence.
Output
[1.0] The sum of the numeric values of
all of the nodes in the argument node-set. If any node in the
argument node-set cannot be converted to a number, the sum()
function returns NaN
.
[2.0] Given a sequence of numeric
values, sum()
returns the
sum of those values. Given a sequence of durations, sum()
returns the sum of those
durations. As you’d expect from XSLT 2.0, there are some
complications to consider:
To calculate the sum of a sequence of durations, the durations must all be
xs:dayTimeDuration
s, or they must all bexs:yearMonthDuration
s. You can’t mix the two types of durations; if you do, the XSLT processor raises an error.If any of the items in the sequence are of type
xs:untypedAtomic
, the XSLT processor attempts to cast it toxs:double
. If it can’t be converted to anxs:double
, the XSLT processor raises an error.If you pass a nonempty sequence to
sum()
and the sum is0
, the function ...
Get XSLT, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.