sum()-Funktion  
Diese Funktion konvertiert alle Knoten der Knotenmenge im Argument in Zahlen und gibt dann die Summe aller dieser Zahlen zurück. Wenn ein Knoten der Knotenmenge sich nicht in eine Zahl konvertieren lässt (die Funktion number() hätte den Wert NaN geliefert), so gibt die Funktion sum() den Wert NaN zurück.
 
Eingaben

Eine Knotenmenge. Jeder Knoten in der Knotenmenge, der keine Zahl ist, wird in eine Zahl konvertiert als wäre er an die Funktion number() übergeben worden. Anschließend werden die numerischen Werte aller Knoten addiert.

 
Ausgabe

Die Summe der numerischen Werte aller Knoten der Knotenmenge im Argument. Wenn ein Knoten der Knotenmenge im Argument sich nicht in eine Zahl konvertieren lässt, gibt die Funktion sum() den Wert NaN zurück.

 
Definition

XPath-Abschnitt 4.4, Zahlenfunktionen

 
Beispiel

Die Funktion sum() wird durch das folgende XML-Dokument veranschaulicht:

<?xml version="1.0"?>
<report>
  <title>Miles Flown in 2001</title>
  <month sequence="01">
    <miles-flown>12379</miles-flown>
    <miles-earned>35215</miles-earned>
  </month>
  <month sequence="02">
    <miles-flown>32857</miles-flown>
    <miles-earned>92731</miles-earned>
  </month>
  <month sequence="03">
    <miles-flown>19920</miles-flown>
    <miles-earned>76725</miles-earned>
  </month>
  <month sequence="04">
    <miles-flown>18903</miles-flown>
    <miles-earned>31781</miles-earned>
  </month>
</report>

Hier das Stylesheet, das die Funktion sum() verwendet:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="text"/>

  <xsl:variable name="newline">
<xsl:text>
</xsl:text>
  </xsl:variable>

  <xsl:template match="/">
    <xsl:value-of select="$newline"/>
    <xsl:text>A test of the sum() function:</xsl:text>

    <xsl:value-of select="$newline"/>
    <xsl:value-of select="$newline"/>
    <xsl:text>Total miles flown this year:  </xsl:text>
    <xsl:value-of 
      select="format-number(sum(/report/month/miles-flown), '###,###')"/>
    <xsl:value-of select="$newline"/>
    <xsl:value-of select="$newline"/>
    <xsl:text>Total miles earned this year: </xsl:text>
    <xsl:value-of 
      select="format-number(sum(/report/month/miles-earned), '###,###')"/>
    <xsl:value-of select="$newline"/>
    <xsl:value-of select="$newline"/>
  </xsl:template>

</xsl:stylesheet>

Wird das XML-Dokument mit diesem Stylesheet verarbeitet, generiert es die folgenden Ergebnisse:


A test of the sum() function:

Total miles flown this year:  84,059

Total miles earned this year: 236,452