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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access