fn:count

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 5.)

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

   

Kategorie: Aggregation

Herkunft: XPath 1.0

Rückgabewert: Eine Zahl – die Anzahl der in einer übergebenen Sequenz ent­haltenen Sequenzelemente (items). In XPath 1.0 werden dagegen die in einem Nodeset enthalte­nen Knoten gezählt. Rückgabewert ist in beiden Fällen eine Ganzzahl: In XPath 1.0 vom Typ number, in XPath 2.0 vom Typ xs:integer.

Aufruf/Argumente:

fn:count($sequenz)

$sequenz:
Obligatorisch. Eine Sequenz aus Items, bei denen es sich sowohl um Knoten als auch um atomare Werte oder eine Mischung von beidem handeln kann. (In XPath 1.0 muss es sich beim Eingabewert um einen Nodeset handeln.)

Verwendungszweck:

Es werden nur die direkt in der Sequenz (XPath 1.0: im Node­set) enthaltenen Sequenzelemente (items) gezählt, nicht allerdings, falls es sich bei ihnen um Elementknoten handelt, deren möglicherweise vorhandene Kindknoten oder Nachkommen. Wird die leere Sequenz übergeben (XPath 2.0) bzw. ist der Nodeset leer (XPath 1.0), so gibt die Funktion den Inte­gerwert 0 zurück.

Beispiele:

Beispiel 1 – Zählen von Elementen:

<xsl:value-of select="fn:count(//produkt)"/>

Dieser Ausdruck zählt mit fn:count() alle in einem Dokument enthaltenen Elemente <produkt> und gibt deren Zahl aus.

Beispiel 2 – Ablage der Anzahl von Attributen in einer Variable:

<xsl:variable name="att-anzahl" select="fn:count(@*)"/>

Hier wird die Anzahl der (beliebig benannten) Attribute des Current Node in einer Variablen att-anzahl gespeichert. Hierfür wird die Funktion fn:count() einfach im select-Attribut der Variablen im Rahmen eines XPath-Ausdrucks verwendet.

Beispiel 3 – Zählen von Items einer Sequenz:

fn:count(1, 3, 7) ergibt 3

Die Übergabe einer Sequenz aus drei Items an die Funktion ergibt den Rückga­bewert 3.

Beispiel 4 – Übergabe einer leeren Sequenz:

fn:count(()) ergibt 0

Die Übergabe einer leeren Sequenz an die Funktion ergibt den Rückgabewert 0.

Funktionsdefinition:

XPath 1.0:

count(node-set) => number

XPath 2.0:

fn:count($arg as item()*) as xs:integer

Mögliche Kompatibilitätsprobleme XPath 2.0 zu XPath 1.0:
Keine. Unter XPath 2.0 gibt die Funktion im Fall der Übergabe der leeren Sequenz den Wert 0 zurück. Dies ist analog zur Übergabe eines leeren Nodesets unter XPath 1.0.

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Galileo Press, Rheinwerkallee 4, 53227 Bonn