+ All Categories
Home > Documents > Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf...

Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf...

Date post: 15-Oct-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
23
XPath Bearbeiter: Christian Vogel 03.06.04 TU Chemnitz Proseminar: XML- basierte Technologien
Transcript
Page 1: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

XPathBearbeiter:

Christian Vogel

03.06.04TU Chemnitz

Proseminar: XML­ basierte Technologien

Page 2: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Gliederung:

• Allgemeines• Knoten­ Arten• Ausdrücke• Pfade• Ausblick: XPath 2.0

03.06.04            XPath                                            2

Page 3: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Allgemeines (1)

• Warum XPath? 

– Adressierung einzelner Teile eines XML­ Dokumentes

– Auswahl von Elementen oder Elementgruppen– gezielt Werte verfügbar machen

03.06.04            XPath                                            3

Page 4: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Allgemeines (2)

• Überblick: 

– aktuell: Version 1.0 von Nov. 1999– standardisierte Anfragesprache für XML­ Dokumente– eigenständige Syntax (keine XML­ Syntax)– nur als Hilfsmittel anwendbar :  

• hauptsächlich bei XSLT („ match“ ­Attribut)• aber auch XPointer, XML Schema

03.06.04            XPath                                            4

Page 5: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Allgemeines (3)

• operiert auf abstrakter, logischer Struktur• XML­ Dokument baumartig aufgebaut• Verzweigungen sind Knoten (node)• Gruppen von Knoten sind Knotensätze (node­set)• 7 verschieden Knoten

03.06.04            XPath                                            5

Page 6: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Knoten­ Arten:

• Wurzelknoten  (root)• Elementknoten  (elem)• Kommentarknoten  (comm)• Textknoten (text)• Verarbeitungsanweisungsknoten (proc)• Attributknoten  (attr)• Namensraumknoten (name)

03.06.04            XPath                                            6

Page 7: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Knoten­ Arten:­ Knoten hat Format: index (typ) expanded­name „ string­value“

03.06.04            XPath                                            7

1 (root) "Welch seltsames XML­Dokument"

        |

        2 (proc) lala "bla=blu"

        |

        3 (elem) http://www.TEST.de/:foo "Welch seltsames XML­Dokument"

                |

                4 (name) ns "http://www.TEST.de/"

                |

                5 (elem) http://www.TEST.de/:bar "Welch seltsames"

                |        |

                |        6 (name) ns "http://www.TEST.de/"

                |        |

                |        7 (attr) http://www.TEST.de/:attr1 "0815"

                |        |

                |        8 (text) "Welch seltsames"

                |

                9 (comm) "nicht einschlafen!"

                |

                10 (text) "XML­Dokument"

<?xml version="1.0"?>

<?lala bla=blu?>

<!DOCTYPE foo SYSTEM "foo.dtd">

<ns:foo xmlns:ns="http://www.TEST.de/">

        <ns:bar  ns:attr1="0815">

                Welch seltsames

        </ns:bar>

        <!­­ nicht einschlafen! ­­>

        XML­Dokument

</ns:foo>

BaumXML­ Dokument

Page 8: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Ausdrücke:

• expressions:– primäre, syntaktische Konstrukt– oft in XML­ Attributen

• Sonderzeichen in XML­ Syntax ( <̀  ̀= &lt;)

– Resultate von folgenden Datentypen:• node­set  (Menge von Knoten)• boolean  (boolescher Wert)• number  (Gleitkommazahlen)• string  (Zeichenkette)

03.06.04            XPath                                            8

Page 9: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Ausdrücke:

03.06.04            XPath                                            9

/child::*Lokalisierungspfadeposition(), not(),...Funktionen'|' Vereinigung'(' ')' Gruppierungen'+' '­' '*' div modarithmetische Op.'<' '>' '<=' '>=' '!=' '=' 'and' 'or'logische Operatoren$varVariablenGleitkommazahlenZahlen'lala', 'foobar'strings

Page 10: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Lokalisierungspfade (1):

­ wichtigste Art eines Ausdrucks­ Auswahl bestimmter Knoten aus Baum­ schrittweises Vorgehen­ ist Pfaden im Dateisystem ähnlich­ Arten:

­ relative LP

­ absolute LP

03.06.04            XPath                                           10

schritt1/schritt2

/schritt1/schritt2

Page 11: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Lokalisierungspfade (2):

­ Aufbau eines SchrittesSchrittes::

03.06.04            XPath                                           11

achse::knotentest[prädikat1][prädikat2]...

      achse::achse::

­ gibt Verhältnis der gewünschten Knoten zum Kontextknoten an

Page 12: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Lokalisierungspfade (3):

03.06.04            XPath                                           12

Page 13: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Lokalisierungspfade (4):

03.06.04            XPath                                           13

– zusätzlich noch:

–descendant­or­self–ancestor­or­self–namespace–attribute

Page 14: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Lokalisierungspfade (5):

­ Aufbau eines SchrittesSchrittes::

03.06.04            XPath                                           14

achse::knotentest[prädikat1][prädikat2]...

  achse::achse::knotentestknotentest

­ Prüfung der durch achse ausgewählten Knoten, ob vom Typ knotentest

Page 15: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Lokalisierungspfade (6):

03.06.04            XPath                                           15

...jeden Knotennode()

...jeden Knoten aus ns mit namens:name  

...jedenVerarbeitungsanweisungsknotenprocessing­instruction()

...jeden Kommentarknotencomment()

...jeden Textknotentext()

...jeden Knoten des Hauptknotentyps*

erfüllt für...knotentest

Page 16: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Lokalisierungspfade (7):

03.06.04            XPath                                           16

– Beispiele:

child::*

/descendant­or­self::node()

attribute::ns:href

Page 17: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Lokalisierungspfade (8):

­ Aufbau eines SchrittesSchrittes::

03.06.04            XPath                                           17

achse::knotentest[prädikat1][prädikat2]...

achse::knotentestachse::knotentest[prädikat[prädikat]]

­ zusätzliche Filterung der Knotenmenge

Page 18: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Lokalisierungspfade (9):

03.06.04            XPath                                           18

        child::para[position()=last()]

– Beispiele:

 /child::doc/child::chapter[position()=5]/child::section[position()=2]

 child::para[attribute::type='warning'][position()=5]

child::*[self::chapter or self::appendix]

Page 19: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Lokalisierungspfade (10):

03.06.04            XPath                                           19

///descendant­or­self::node()/

..parent::node()

.self::node()

@attribute::

child::

AbkürzungSchritt

Page 20: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Lokalisierungspfade (11):

03.06.04            XPath                                           20

– Beispiele:

.//para

self::node()/descendant­or­self::node()/child::para

Page 21: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Ausblick: XPath 2.0

• neuer Typ: Sequenztyp

– jede Operation liefert Sequenz– enthält Werte einfacher Typen oder Knoten

• Aufzählung durch Komma• keine Schachtelung

– Operatoren:• for , to

03.06.04            XPath                                           21

for $x in (1 to 10) return $x*$x

Page 22: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Ausblick: XPath 2.0

• bedingte Ausdrücke:

• Einführung starker Typisierung:• XML Schema basierend

• erweiterte Pfadausdrücke• Operatoren für Differenz / Durchschnitt• viele neue Funktionen 

• (Zeichenketten­, Knoten­, Datumfunktionen)

03.06.04            XPath                                           22

if (@level) then @level else 5

Page 23: Proseminar: XML basierte Technologien XPath · 03.06.04 XPath 4. Allgemeines (3) • operiert auf abstrakter, logischer Struktur • XML Dokument baumartig aufgebaut • Verzweigungen

Quellen:

• deutsche Übersetzung der W3C Empfehlung „XML Path Language (XPath)“

• „XML Lösungen“  von Jake Sturm

• Artikel von Oliver Becker im JAVASPEKTRUM 6/2003

03.06.04            XPath                                           23


Recommended