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).
Zum 30. Juni 2028 soll das 2G-Netz komplett abgeschaltet werden und den Weg für schnellere…
Gewinn und Umsatz legen deutlich zu. Zum Wachstum tragen auch die Sparten Cloud und Abonnements…
Ein neues Bug-Bounty-Programm beschäftigt sich mit Apples Private Cloud Compute. Prämien gibt es unter für…
Betroffen sind alle aktuell unterstützten Apple-Smartphones und -Tablets. Schwachstellen in iOS und iPadOS erlauben unter…
Sie erlaubt Diebstahl von Daten. Bedrohungsakteure könnten FortiManager-Appliances kompromittieren, um Unternehmensumgebungen anzugreifen.
Speicherchips und GPUs für KI-Server beflügeln das Wachstum. Die Nachfrage aus dem Automobil- und Industriesektor…