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 SS 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 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 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 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 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 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 jegliches Attribut o 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 +Addition 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