count()-Funktion |
Diese Funktion zählt die Anzahl der Knoten in einer bestimmten Knotenmenge.
Eingaben
Eine Knotenmenge.
Ausgabe
Die Anzahl der Knoten in der Knotenmenge.
Definition
XPath-Abschnitt 4.1, Funktionen auf Knotenmengen
Beispiele
Hier das XML-Dokument, mit dem die Funktion count() veranschaulicht werden soll:
    <?xml version="1.0"?>
    <test>
      <p>This is a test XML document used by
      several of our sample stylesheets.</p>
      <question>
        <text>When completed, the Eiffel Tower was the
        tallest building in the world.</text>
        <true>You're correct!  The Eiffel Tower was the
        world's tallest building until 1930.</true>
        <false>No, the Eiffel Tower was the world's
        tallest building for over 30 years.</false>
      </question>
      <question>
        <text>New York's Empire State Building knocked
        the Eiffel Tower from its pedestal.</text>
        <true>No, that's not correct.</true>
        <false>Correct!  New York's Chrysler Building,
        completed in 1930, became the world's tallest.</false>
      </question>
    </test>
Hier das Stylesheet, das die Funktion count() veranschaulicht:
    <?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>Tests of the count() function:</xsl:text>

        <xsl:value-of select="$newline"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   count(/test)=</xsl:text>
        <xsl:value-of select="count(/test)"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   count(/true)=</xsl:text>
        <xsl:value-of select="count(/true)"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   count(//true)=</xsl:text>
        <xsl:value-of select="count(//true)"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   count(//test|//true|//text)=</xsl:text>
        <xsl:value-of select="count(//test|//true|//text)"/>
        <xsl:value-of select="$newline"/>
        <xsl:variable name="numberOfQuestions" select="count(/test/question)"/>
        <xsl:for-each select="/test/question">
          <xsl:text>   This is question number </xsl:text>
          <xsl:value-of select="position()"/>
          <xsl:text> of </xsl:text>
          <xsl:value-of select="$numberOfQuestions"/>

          <xsl:value-of select="$newline"/>
        </xsl:for-each>
      </xsl:template>

    </xsl:stylesheet>
Hier die Ergebnisse der Transformation:
    Tests of the count() function:

       count(/test)=1
       count(/true)=0
       count(//true)=2
       count(//test|//true|//text)=5
       This is question number 1 of 2
       This is question number 2 of 2
Die ersten vier Aufrufe der Funktion count() verwenden XPath-Ausdrücke nur, um etwas im XML-Dokument zu zählen. Die letzte Verwendung von count() zählt die Anzahl der <question>-Elemente im Dokument und speichert diesen Wert in einer Variablen. Die Erzeugung von Text wie item x of y (Element x von y) ist eine übliche Technik. Meist wird der Text wie im Beispiel mit den Funktionen count() und position() erzeugt.