Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenbanktechnologie Daniel Ebner SS2011 23.Mai Ulrike Lohner.

Ähnliche Präsentationen


Präsentation zum Thema: "Datenbanktechnologie Daniel Ebner SS2011 23.Mai Ulrike Lohner."—  Präsentation transkript:

1 Datenbanktechnologie Daniel Ebner SS2011 23.Mai Ulrike Lohner

2 Übersicht Was ist XPath XPath Terminologie Beziehungen zwischen Knoten Knoten aufrufen Prädikate Aufrufen unbekannter Knoten Aufrufen verschiedener Pfade die XPath Achse Location Path Ausdrücke XPath Operatoren XPath Funktionen

3 Was ist XPath Syntax, die teile eines XML-Dokuments definiert wird benutzt, um in XML-Dokumenten zu navigieren macht Gebrauch von über 100 (Standard-) Funktionen und Ausdrücken Wichtige Grundlage für: XSLT, XQuery, XPointer Letzte Version: 23. Januar 2007, XPath 2.0

4 XPath Terminologie Knoten: Element, Attribut, Text, Namespace, Befehle, Kommentare, Dokumentenknoten Harry Potter J K. Rowling 2005 29.99 Wurzelknoten (root element node) J K. Rowling Elementknoten (element node) lang="en Attribut (attribute node) J K. Rowling bzw. en Item /atomic value (keine Eltern oder Kinder)

5 Beziehungen zwischen Knoten Harry Potter J K. Rowling 2005 29.99 Knoten können kein child, eines, oder mehrere children haben Parent des Titels, Autors, Jahres, Preises Titel, Autor, Jahr, Preis Children des Elementes Children mit dem selben Parent sind Siblings

6 Harry Potter J K. Rowling 2005 29.99 Ancestors (Vorfahren) = Parent des Elements, Parent des Parent des Parent... Descendants (Nachfahren) = Kind eines Elements, Kind des Kindes des Kindes...

7 Knoten aufrufen AusdruckBeschreibung Knotennameruft alle Kinder des Knotens auf /ruft das Wurzelelement auf //ruft alle passenden Knoten des aktuellen Dokuments auf, egal wo sie sich befinden.ruft den aktuellen Knoten auf..ruft den Parent des aktuellen Knotens auf @ruft Attribute auf

8 Predicates (Prädikate) Zum Aufrufen spezifischer Knoten oder einem knoten mit spezifischem Wert Prädikate sind immer durch [ ] gekennzeichnet AusdruckErgebnis /bookstore/book[1]ruft das erste book-Element auf, das ein Kind von bookstore ist /bookstore/book[last()] [last()-1] ruft das letzte book-Element auf vorletzte /bookstore/book[position()<3]ruft die ersten beiden book-Elemente auf //title[@lang]ruft alle Titelelemente auf, die das Attribut lang haben /bookstore/book[price>35.00]ruft alle book-Elemente auf, die ein price-Element haben, dessen Wert größer ist als 35.00

9 Aufrufen unbekannter Knoten Wildcards zum Aufrufen unbekannter XML Elemente o * jeglicher Knoten o /bookstore/* ruft jedes Kind von bookstore auf o //* ruft alle Knoten des Dokuments auf o @* jegliches Attribut o //title[@*] ruft alle Titelknoten auf, die irgendein Attribut tragen

10 Aufrufen verschiedener Pfade durch den Operator | kann man verschiedene Pfade gleichzeitig aufrufen z.B.: //book/title | //book/price ruft alle Titel und Preis-Elemente aller Buch-Elemente auf z.B.: //title | //price ruft alle Titel- und Preis-Elemente des Dokuments auf

11 Die XPath-Achse eine Achse definiert die Reihe der Verwandten des aktuellen Knotens o ancestor o ancestor-or-self o attribute o child o descendant o descendant-or-self o following o following-sibling o namespace o parent o preceding o preceding-sibling o self

12 Location Path Ausdrücke absoluter Pfad: /step/step/step/... relativer Pfad: step/step/step/... ein step besteht aus: einer Achse einem Knotentest (nodetest) optionalen Prädikaten Syntax einer Stufe: axisname::nodetest[predicate]

13 Beispiele: child::book attribute::lang child::* child::text() child::*/child::price

14 XPath Operatoren OperatorBeschreibungBeispielErgebnis +Addition6+410 -Subtraktion6-42 *Multiplikation6*424 divDivision8 div 42 =gleichprice=9,80true/false !=nicht gleichprice!=9,80t/f <><> weniger als mehr als price<9,80 price>9,80 t/f <= >= weniger oder gleich mehr oder gleich price<=9,80 price>=9,80 t/f oroderprice=9,80 or price=9,70t/f andundprice>9,00 and price<9,90t/f modModul/Teilungsrest5 mod 21

15 XPath Funktionen Accessor Functions ( fn:nodename(node) ) Error and Trace Functions ( fn:error() ) Functions on Numeric Values ( fn:number(arg) ) Functions on Strings ( fn:string(arg) ) functions on Boolean Values ( fn:boolean(arg) ) Functions on Durations, Dates and Times ( fn:dateTime(date, time) ) Functions on Nodes ( fn:name() ) Functions on Sequences ( fn:empty(item,item,...) ) Context Functions ( fn:position() )


Herunterladen ppt "Datenbanktechnologie Daniel Ebner SS2011 23.Mai Ulrike Lohner."

Ähnliche Präsentationen


Google-Anzeigen