Ein Knotentest für die Auswahl

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

Dass der Knotentest auf der vorherigen Seite mit den runden Klammern einer Funktion geschrie­ben wurde, symbolisiert, dass er im Grunde eine aktive Filterung beschreibt

Der Knotentest wählt aus der Grundmenge aller Knoten, die auf der gewählten Achse des Location Steps liegen, als Untermenge diejenigen Knoten aus, die den Knotentest erfüllen. Diese bilden die Ergebnismenge des Einzelschritts.

Der Knotentest besteht im anschaulichen Fall aus dem Namen der gewünsch­ten Knoten. Dies ist aber nur für benannte Knoten wie Elemente oder Attribute möglich. Man bezeichnet den Knotentest dann als NameTest. Für die restli­chen Knotengattungen gibt es eigene Tests. Diese sehen wirklich wie Funk­tionen aus, werden diesen aber dennoch nicht zugerechnet: text() wählt bei­spielsweise Textknoten, comment() wählt Kommentarknoten. Da es hier um die »Art« (kind) der Knoten geht, heißen diese Knotentests analog auch Kind­Test. Es gibt sogar einen neutralen KindTest, der pauschal auf alle Knoten, ob benannt oder unbenannt, zutrifft: node().

Durch die pro Schritt erfolgende Achsenangabe könnte ein zusammengesetzter Pfadausdruck mehrmals die Richtung ändern. Dies ist eher selten der Fall, die Beteiligung von bis zu drei Achsen ist aber denkbar. Am Ende bleibt nach dem letzten Schritt eine Ergebnissequenz übrig: diejenigen Knoten, die die Bedin­gungen aller Schritte in der angeordneten Reihenfolge erfüllen.

   

<< 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