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).
Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.
Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…
Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.
Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.
Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…
Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…