Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XML - Abfragesprache Xpath. Problemstellung Unsere XML-Datei steht und wir wollen alle 1. Titel aller vergangenen Sendungen automatisch aus den Playlists.

Ähnliche Präsentationen


Präsentation zum Thema: "XML - Abfragesprache Xpath. Problemstellung Unsere XML-Datei steht und wir wollen alle 1. Titel aller vergangenen Sendungen automatisch aus den Playlists."—  Präsentation transkript:

1 XML - Abfragesprache Xpath

2 Problemstellung Unsere XML-Datei steht und wir wollen alle 1. Titel aller vergangenen Sendungen automatisch aus den Playlists heraussuchen lassen. > Mit Xpath lässt sich diese Abfrage ausdrücken

3 Allgemeine Informationen Vom W3-Konsortium entwickelte Abfragesprache Dient der Abfrage von Teilen eines XML-Dokuments Dient als Grundlage für weitere Standards wie XSLT, Xpointer oder XQuery Xpath

4 Die Beispielauswahl mit Xpath ausgedrückt: /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel Alternative (Kurz-) Schreibweise (von denen es Unzählige gibt): /koelnCampus/sendung/playlist/song[@nr=1]/songtitel /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel

5 Xpath Xpath durchläuft die XML-Datei entlang ihrer Baumstruktur Es gibt 7 Knotentypen (haben wir z.T. schon bei der XML-Einführung angesprochen): 1.Wurzel (= das oberstes Element) 2.Elemente 3.Attribute 4.Text (= der Inhalt zwischen den Tags) 5.Namensraum 6.Verarbeitungsanweisung (z.B. ) 7.Kommentare /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel

6 Xpath Genereller Aufbau eines Xpath-Ausdrucks Einer oder mehrere Lokalisierungsschritte (location steps), durch / voneinander getrennt. Diese bestehen aus zwei Teilen: 1.Der Achse (axis) 2.Dem Knotentest (node-test) Optional folgen ein oder mehrere Prädikate (predicates) Will man mehrere Xpath-Ausdrücke beliebig hintereinander schreiben, kann man sie mit dem Zeichen | verbinden. /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel

7 Xpath Achsen Die verschiedenen Achsenrichtungen geben an, in welche Richtung man sich in der Baumstruktur des Dokuments bewegt. (siehe: http://de.wikipedia.org/wiki/XPath#Achsen) /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel koelnCampus sendung usw.

8 Xpath Beispiel für Achsenrichtung 1: child (Kindachse) Die Kindknoten unterhalb des aktuellen Knotens werden angesprochen /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel koelnCampus sendung usw.

9 Xpath Beispiel für Achsenrichtung 2: parent (Elternachse) Der Elternknoten des aktuellen Knotens wird angesprochen /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel koelnCampus sendung usw.

10 Xpath Beispiel für Achsenrichtung 3: descendant Sämtliche Nachkommen des aktuellen Knoten werden angesprochen /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel koelnCampus sendung usw.

11 Xpath Beispiel für Achsenrichtung 3: following-sibling Alle folgenden Geschwisterknoten werden angesprochen /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel koelnCampus sendung usw.

12 Xpath Knotentest In unserem Beispiel werden also jeweils immer die child-Achsen der entsprechenden Kontextknoten angesprochen (s.u.). Der Knotentest schränkt die Elementauswahl der Achse ein (z.B. hat sendung mehr Kinder als nur playlist, weswegen dessen Elementname angegeben wird), er wird mit zwei Doppelpunkten :: an die Achse angefügt Bei /child::koelnCampus/child::sendung/child::* würden hingegen alle child-Elemente von sendung ausgegeben werden. Das Zeichen * als Knotentest steht also für gib mir alle Achsen dieses Typs. /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel

13 Xpath Prädikate Mit Prädikaten lässt sich die Auswahl (nach dem Knotentest) weiter einschränken. Ein Prädikat ist in eckigen Klammern [] notiert und kann verschiedene Funktionen beinhalten. (siehe: http://de.wikipedia.org/wiki/XPath#Pr.C3.A4dikate) In unserem Beispiel werden nur jene song-Knoten (->Knotentest) ausgewählt, bei denen das Attribut nr den Wert 1 besitzt (->Prädikat). /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel

14 Xpath Alternativen wären zum Beispiel alle songtitel ausser den ersten: /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr!=1]/child::songtitel Oder alle songtitel mit dem Attribut nr größer als 1 aber kleiner als 7: /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr>1][attribute::nr<7]/ch ild::songtitel Oder alle interpreten, die in playlists vorkommen, in denen weniger als 10mal das Element song vorkommt: /child::koelnCampus/child::sendung/child::playlist[count(./song)<10]/child::song/child::interpret /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel

15 Prädikate können allgemein drei Arten von Operatoren beinhalten: 1.Relationszeichen (=, !=,, =) 2.Mathematische Operatoren (+, -, /, *, Klammern, usw.) 3.Funktionen (z.B. die count()-Funktion von der Seite vorher) Xpath /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel

16 Xpath /child::koelnCampus/child::sendung/child::playlist/child::song[attribute::nr=1]/child::songtitel Ende


Herunterladen ppt "XML - Abfragesprache Xpath. Problemstellung Unsere XML-Datei steht und wir wollen alle 1. Titel aller vergangenen Sendungen automatisch aus den Playlists."

Ähnliche Präsentationen


Google-Anzeigen