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

Telekom nennt Termin für 2G-Ende

Zum 30. Juni 2028 soll das 2G-Netz komplett abgeschaltet werden und den Weg für schnellere…

6 Tagen ago

Alphabet übertrifft die Erwartungen im dritten Quartal

Gewinn und Umsatz legen deutlich zu. Zum Wachstum tragen auch die Sparten Cloud und Abonnements…

6 Tagen ago

1 Million Dollar: Apple zahlt Prämie für Hack seiner Apple Intelligence Server

Ein neues Bug-Bounty-Programm beschäftigt sich mit Apples Private Cloud Compute. Prämien gibt es unter für…

7 Tagen ago

Apple stopft 28 Sicherheitslöcher in iOS und iPadOS 18

Betroffen sind alle aktuell unterstützten Apple-Smartphones und -Tablets. Schwachstellen in iOS und iPadOS erlauben unter…

1 Woche ago

Mandiant warnt vor Angriffen auf Zero-Day-Lücke in FortiManager-Appliances

Sie erlaubt Diebstahl von Daten. Bedrohungsakteure könnten FortiManager-Appliances kompromittieren, um Unternehmensumgebungen anzugreifen.

1 Woche ago

Gartner: Halbleiterumsätze steigen 2025 voraussichtlich um 14 Prozent

Speicherchips und GPUs für KI-Server beflügeln das Wachstum. Die Nachfrage aus dem Automobil- und Industriesektor…

1 Woche ago