Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Arithmetics (1/6) >

Addition and subtraction

Usual operators "+" and "-" are used for addition and subtraction. Nodes from the source document can be used for calculation. In this case the contents of the nodes is transformed to numeric values.

Please note the difference between eee and fff. In the eee example the "-" operator is surrounded by spaces and so subtraction is performed. In the fff example there are no spaces and as "-" character can be used in element names, the parser understand this notation as element name x-z, not as a subtraction (only the preceding space is mandatory for subtraction as an element name must not start with "-" and so it is obvious that it must be subtraction; the following space can be omitted). The plus sign is not permitted in element names and so surrounding spaces are not mandatory.

XSLT

      <xsl:stylesheet
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0">
            <xsl:output  method="xml"
                        indent="yes"
                        omit-xml-declaration="yes"/>

            <xsl:template  match="/aaa">
                  <bbb>
                        <xsl:value-of  select="12+23"/>
                  </bbb>
                  <ccc>
                        <xsl:value-of  select="7-2"/>
                  </ccc>
                  <ddd>
                        <xsl:value-of  select="x+y"/>
                  </ddd>
                  <eee>
                        <xsl:value-of  select="x - y"/>
                  </eee>
                  <fff>
                        <xsl:value-of  select="x-y"/>
                  </fff>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <x>5</x>
            <y>3</y>
            <x-y>666</x-y>
      </aaa>
Output

      <bbb>35</bbb>
      <ccc>5</ccc>
      <ddd>8</ddd>
      <eee>2</eee>
      <fff>666</fff>


Previous chapter: Implicit behaviour
Next chapter: Functions operating on strings
Previous page: - - -
Next page: Multiplication and division