Lokalisierungspfade
Ein Lokalisierungspfad ist eine Formulierung, mit der bestimmte Knoten oder Knotenmengen innerhalb eines XML-Dokumentes angesteuert bzw. ausgewählt werden können. Lokalisierungspfade können
- verkürzt oder ausführlich beschrieben
- relativ oder absolut
sein.
Verkürzte und ausführliche Syntax
Ein Pfadausdruck in XPath kann ausführlich beschrieben oder verkürzt werden. Während die ausführliche Syntax bei seltener adressierten Knoten und Achsen üblich ist, existiert für häufig selektierte Knoten und Achsen eine verkürzte Schreibweise. Die Bezeichnung "child::" für die Kind-Achse kann z.B. grundsätzlich weggelassen werden, da diese als Standardachse angesehen wird.
Ein Beispiel für die ausführliche Schreibweise:
/child::HOCHSCHULE/child::PHILOSOPHIE/child::STUDENTENZAHL/attribute::EINHEIT/
Die verkürzte Schreibweise
/HOCHSCHULE/PHILOSOPHIE/STUDENTENZAHL/@EINHEIT
verzichtet bei der Child-Achse auf die Achsenbezeichnung, der Attributknoten wird durch das Zeichen @ abgekürzt.
Gegenüberstellung ausführlicher und verkürzter Syntax:
Achse/Knoten | vollständig | verkürzt |
Knoten selbst | self::node() | . |
Kinder | child:: | Standard-Achse (Default), die Angabe kann weggelassen werden |
Nachkommen | descendant-or-self::node()/ | // |
Eltern | parent::node() | .. |
Attribute | attribute:: | @ |
Absolute und relative Pfadangaben
Eine Pfadangabe in XPath kann relativ oder absolut sein. Während relative Pfade vom (aktuellen) Kontextknoten aus starten, geht ein absoluter Lokalisierungspfad vom Wurzelknoten aus. Ein Lokalisierungspfad setzt sich aus mehreren Lokalisierungsschritten zusammen, die durch Schrägstriche voneinander getrennt werden. Ein Lokalisierungsschritt enthält die Angabe einer Achse, die Angabe eines Knotentests und ein (oder mehrere) Prädikat(e), wobei die Angabe von Prädikaten optional ist.
/child::HOCHSCHULE/child::POLITIK/child::DEKAN
Der erste Schrägstrich markiert den Wurzelknoten. Davon ausgehend wird das Wurzelelement <HOCHSCHULE> ausgewählt, das über ein Kindelement <POLITIK> verfügen muss, welches wiederum ein Kindelement <DEKAN> aufweisen muss, damit ein Treffer erzielt wird. Die Bezeichnung der Achsen erfolgt durch die Angabe des Namens, gefolgt von zwei Doppelpunkten.
In verkürzter Schreibweise lautet der Pfad:
/HOCHSCHULE/POLITIK/DEKAN
Relative Pfadangaben ermöglichen eine Suche im gesamten Dokument:
child::POLITIK/child::DEKAN
Nun wird im gesamten XML-Dokument nach dem Element <POLITIK> und dessen Kindelement <DEKAN> gesucht. Wenn diese Kombination im Dokument vorkommt, wird ein Treffer erzielt.
<< zurück | vor >> |