XPath-Ausdrücke

XML-Dokumente werden als Baumstruktur organisiert, die aus einem Stammknoten und Nachkommen, also untergeordneten Knoten, besteht. Die Funktionsbibliothek stützt sich auf XPath-Argumente, um in dieser Baumstruktur zu suchen und einzelne XML-Knoten zu lokalisieren.

Das Ergebnis eines XPath-Ausdrucks kann ein Knoten oder eine Gruppe von Element-, Text- oder Attributknoten sein. Beispielsweise werden mit dem XPath-Ausdruck /ABC/DEF alle dem Stammknoten ABC untergeordneten DEF-Knoten im XML-Dokument ausgewählt. In der folgenden Tabelle sind die am häufigsten auftretenden Merkmale der XPath-Syntax zusammengefasst.

Tabelle 1. Überblick über die XPath-Syntax
XPath-Syntax Verwendung
/ Der am Anfang stehende normale Schrägstrich in einem XPath-Ausdruck gibt das Stammelement der Baumstruktur an. Geben Sie einen absoluten Pfad durch einen am Anfang stehenden Schrägstrich an. Zum Beispiel gibt /ABC das untergeordnete ABC-Element an, das sich im Stammelement befindet. Wenn Sie den am Anfang stehenden Schrägstrich weglassen, ist der Pfad relativ und der Kontext des relativen Pfads nimmt als Standardwert das Stammelement an. Verwenden Sie nachfolgende normale Schrägstriche innerhalb eines XPath-Ausdrucks als Pfadtrennzeichen, um die untergeordneten Knoten eines Knotens anzugeben. Beispielsweise gibt /ABC/DEF das Element DEF an, bei dem es sich um ein untergeordnetes Element des Elements ABC handelt, das ein untergeordnetes Element des Stammelements ist.
// Zwei normale Schrägstriche geben alle Nachkommen des aktuellen Knotens an. Beispielsweise stimmt ABC//DEF mit allen DEF-Elementen unterhalb des Elements ABC überein.
* Der Stern ist das Platzhalterzeichen und gibt eine Übereinstimmung in einem der untergeordneten Knoten an. Zum Beispiel stimmt /ABC/*/DEF mit allen DEF-Elementen überein, die ein in zweiter Ebene untergeordnetes Element des Elements ABC sind.
[] Eckige Klammern geben Vergleichselementausdrücke an, wie beispielsweise die Binäroperatoren OR, AND und NOT. Zum Beispiel wird mit /RESIDENTS [AGE=65 and NAME="Jane Doe"]/ADDRESS das Element 'Address' aller Einwohner ausgewählt, deren Alter 65 Jahre und deren Name Jane Doe ist. Die eckigen Klammern bezeichnen auch einen Index für eine Liste. Beispielsweise gibt /POSTOFFICE/BOX[2] das Element mit der zweiten Postfachnummer unterhalb des Stammeelements POSTOFFICE an.
Knotenname Mit der Variablen Knotenname werden alle untergeordneten Knoten des genannten Knotens ausgewählt. Es folgen Beispiele:
  • Mit bookstore werden alle untergeordneten Knoten des Elements 'bookstore' ausgewählt.
  • Mit /bookstore wird das Stammelement 'bookstore' ausgewählt. Wenn der Pfad mit einem normalen Schrägstrich (/) beginnt, handelt es sich immer um einen absoluten Pfad zu einem Element.
  • Mit bookstore/book werden alle untergeordneten 'book'-Elemente von 'bookstore' ausgewählt.
  • Mit book werden alle 'book'-Elemente im Dokument ausgewählt.
  • Mit bookstore//book werden alle 'book'-Elemente ausgewählt, die Nachkommen von 'bookstore' sind, unabhängig davon, ob sie sich unterhalb des Elements 'bookstore' befinden.
. Mit einem einzelnen Punkt wird der aktuelle Knoten ausgewählt.
.. Mit zwei Punkten wird das übergeordnete Element des aktuellen Knotens ausgewählt.
@ Mit dem kommerziellen A werden Attribute ausgewählt. Beispielsweise werden mit //@lang alle Attribute ausgewählt, die mit 'lang' benannt sind.
func_
'
Name
XPath unterstützt eine Gruppe von integrierten Funktionen wie beispielsweise substring(), round() und not(). Darüber hinaus können Sie benutzerdefinierte Funktionen zur Verfügung stellen, indem Sie Namensbereiche verwenden.