Numbers
There are no pure integers in XPath. All numbers are
8-byte, IEEE 754 floating-point doubles, even if they don’t have an
explicit decimal point. This format is identical to Java’s double
primitive type. In addition to
representing floating-point numbers ranging from
4.94065645841246544e-324 to 1.79769313486231570e+308 (positive or
negative) and 0, this type includes special representations of
positive and negative infinity and a special not a number (NaN)
value used as the result of operations like dividing zero by
zero.
XPath provides the five basic arithmetic operators that will be familiar to any programmer:
+ Addition |
- Subtraction |
* Multiplication |
div Division |
mod Taking the
remainder |
The more common forward slash couldn’t be used for division
because it’s already used to separate location steps in a location
path. Consequently, a new operator had to be chosen, div
. The word mod
was chosen instead of the more common
%
operator to calculate the
remainder. Aside from these minor differences in syntax, all five
operators behave exactly as they do in Java. For instance, 2+2 is 4,
6.5 div 1.5 is 4.33333333, 6.5 mod 1.5 is 0.5, and so on. The
element <xsl:value-of
select="6*7"/>
inserts the string
42
into the output tree when the
template is instantiated. More often, a stylesheet performs some
simple arithmetic on numbers read from the input document. For
instance, this template rule calculates the century in which a
person was born:
<xsl:template match="person"> <century> <xsl:value-of ...
Get XML in a Nutshell, 3rd 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.