XPath zum Abrufen von Infos aus einer Jet-Datenbank


Um diese Technik benutzen zu können, muss man schon ein wenig mit XPath vertraut sein. Man kann hierzu entweder die komplette XPath-Spezifikation lesen, aber das ist ein recht trockener Stoff. Für den Anfang sollen hier einige einfache XPath-Ausdrücke analysiert werden. Hier der Ausdruck aus Abbildung A:

Dieser Ausdruck besteht aus zwei Teilen. Zuerst wird festgelegt, welche Werte ausgegeben werden sollen, als zweites gibt es einen Filter (in eckigen Klammern), der die ausgegebenen Daten einschränkt. Der erste Ausdruck liefert einen Pfad durch die XML-Datei zu den gesuchten Daten. Listing C zeigt einen kleinen Auszug aus dem XML-Äquivalent der Daten im DataSet.

Die Auslassungen zeigen natürlich, wo ein Großteil zusätzlicher Daten fehlt. Der Ausdruck /OrderData/Employees/LastName sucht nach LastName-Elementen die Kinder von Employees-Elementen sind, die wiederum Kinder von OrderData-Elementen sind, die sich auf der Root-Ebene der XML-Datei befinden. Wie man sehen kann, liefert dies einen Pfad zu den gewünschten Elementen (ganz ähnlich wie bei einem Verzeichnispfad auf der Festplatte) – daher der Name XPath.

Für sich alleine genommen, würde diese Ausdruck alle LastName-Elemente aus der gesamten XML-Datei ausgeben. Der zweite Teil des Ausdrucks, [../Orders/OrderDetails/ProductID=27], filtert den Ausdruck, so dass nur bestimmte LastName-Elemente ausgegeben werden. Dieser Ausdruck besagt, dass beim Eltern-Element des LastName-Elements begonnen werden soll (angegeben durch die zwei Punkte) und dann abwärts die Elemente Orders, OrderDetails und ProductID durchlaufen werden sollen. Dann sucht der Ausdruck nach ProductID-Elementen, deren Wert 27 ist. Der LastName (aus dem ersten Teil des Ausdrucks) wird nur ausgegeben, wenn die ProductID 27 gefunden wurde.

XPath unterstützt auch eine Auswahl von Filter-Funktionen wie im folgenden Ausdruck:

Eine deutsche Übersetzung dieses Ausdrucks könnte lauten: „Gib die Nachnamen aller Mitarbeiter aus, deren Nachname mit D beginnt.“ Man kann diesen Ausdruck sogar noch etwas vereinfachen:

Hier bezieht sich der einzelne Punkt innerhalb der Funktion starts-with auf den aktuellen Knoten, d. h. auf den gerade untersuchten LastName.

Zu den weiteren Filter-Funktionen gehören contains (die untersucht, ob ein String einen anderen enthält), last (die das letzte Element einer Collection ausgibt), string-length (die die Anzahl der Zeichen in einem String ausgibt) und substring (die einen Teilstring eines Strings ausgibt).

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

5 Tagen ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

5 Tagen ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

6 Tagen ago

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

6 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

6 Tagen ago

Apple schließt Zero-Day-Lücken in iOS, iPadOS und macOS

Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…

6 Tagen ago