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