Mathematical Operators

The mathematical operators available in XPath are pretty limited. We’ll use two stylesheets to illustrate how the operators work; the first indicates how an operator works in XSLT 1.0 and the second indicates how it works in XSLT 2.0. We’ll cover the stylesheets in detail for the first operator (the plus sign), then simply refer to those examples throughout this section.

Addition (+)

The plus sign adds two numbers.

[1.0] In an XSLT 1.0 stylesheet, the processor attempts to convert each operand to a number. The following XPath expressions all work in XPath 1.0:

<?xml version="1.0"?>
<!-- addition-1_0.xsl -->
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xsl:output method="text"/>

  <xsl:template match="/">
    <xsl:text>Tests of addition in XPath 1.0&#xA;</xsl:text>
    <xsl:text>&#xA;  9 + 3 = </xsl:text>
    <xsl:value-of select="9 + 3"/>
    <xsl:text>&#xA;  9 + 3.8 = </xsl:text>
    <xsl:value-of select="9 + 3.8"/>
    <xsl:text>&#xA;  9 + '4' = </xsl:text>
    <xsl:value-of select="9 + '4'"/>
    <xsl:text>&#xA;  9 + 'Q' = </xsl:text>
    <xsl:value-of select="9 + 'Q'"/>
    <xsl:text>&#xA;  9 + true() = </xsl:text>
    <xsl:value-of select="9 + true()"/>
    <xsl:text>&#xA;  9 + false() = </xsl:text>
    <xsl:value-of select="9 + false()"/>
  </xsl:template>
</xsl:stylesheet>

Here are the stylesheet results:

Tests of addition in XPath 1.0

  9 + 3 = 12
  9 + 3.8 = 12.8
  9 + '4' = 13
  9 + 'Q' = NaN
  9 + true() = 10
  9 + false() = 9

Notice that XSLT 1.0 ...

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.