XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards:...

12
XPATH XML Path Language

Transcript of XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards:...

Page 1: XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.

XPATHXML Path Language

Page 2: XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.

Xpath – XML Path Language

IT Zertifikat - Daten und Metadatenstandards: XPath

2

Entwicklung des W3C Adressierungssprache für XML eigene Syntax, keine XML-Anwendung Grundlage für z.B. XPointer, XSLT, XQuery, XLink hierarchische Baumstruktur eine Instanz liefert ein node-set

Page 3: XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.

Baumstruktur

IT Zertifikat - Daten und Metadatenstandards: XPath

3

XML-Einheiten sind Knoten (Elemente, Attribute, Namensräume, Kommentare, Verarbeitungsanweisungen)

Knoten haben Nachfahren, Vorfahren, Geschwister, sind über Achsen verbunden

Reihenfolge der Knoten gleich Dokumentenreihenfolge (=> Tiefensuche)

Page 4: XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.

1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 <?xml-stylesheet href="weinkatalog.css" type="text/css"?> 3 <weindepot> 4 <anbaugebiet name="Mosel"> 5 <jahrgang jahr="2001"> 6 <art farbe="weiss"> 7 <wein> 8 <bezeichnung>Enkircher Pastor</bezeichnung> 9 <rebsorte>Riesling</rebsorte> 10 <richtung qualitaet="Auslese">halbtrocken</richtung> 11 <preis>8,00</preis> 12 </wein> 13 <wein> 14 <bezeichnung>Cochemer Hospiz</bezeichnung> 15 <rebsorte>Riesling</rebsorte> 16 <richtung qualitaet="Auslese">trocken</richtung> 17 <preis>18,00</preis> 18 </wein> 19 </art> 20 </jahrgang> 21 </anbaugebiet> 22</weindepot>

Baumstruktur

IT Zertifikat - Daten und Metadatenstandards: XPath

4

weindepotXML-Deklarationen

wurzel

anbaugebiet

jahrgang

art

weinwein

richtungbezeichnung rebsorte preis …

„Enkircher..." "Riesling" „halbtrocken" "8,00"

Page 5: XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.

Knotentypen

IT Zertifikat - Daten und Metadatenstandards: XPath

5

Wurzel (oberster Knoten) Elemente Text (reine Zeichendaten): text() Attribute (werden wie Achsen angesprochen) Namensräume (ebenso) Verarbeitungsanweisungen: processing-

instruction() Kommentare: comment()

Page 6: XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.

Aufbau

IT Zertifikat - Daten und Metadatenstandards: XPath

6

Lokalisierungspfad(e) (getrennt durch ‚|‘ ), bestehend aus: Lokalisierungsstufe(n) (getrennt durch ‚/‘ ), bestehend aus:

Achsen (getrennt durch ‚::‘) Knotentest Prädikat(en) (optional) (in ‚[ ]‘)

Lokalisierungspfad1                 Lokalisierungspfad2

Lokalisierungsstufe1     Lokalisierungsstufe2   Lokalisierungsstufe3

Achse :: Knotentest [Prädikat1] [Prädikat2] / Achse :: Knotentest [Prädikat] | Achse …  

Page 7: XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.

Achsen

IT Zertifikat - Daten und Metadatenstandards: XPath

7

steuern Richtung des Knotendurchlaufs für jede Position gibt es einen eigenen

Kontextknoten Abkürzungen möglich

http://de.wikipedia.org/wiki/XPATH#Achsen

Page 8: XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.

Knotentest

IT Zertifikat - Daten und Metadatenstandards: XPath

8

Filterung der Elemente (keine Attribute oder Namensräume) in einer Knotenmenge (node-set)

Filterung über Elementname, Wildcard (*) oder Knotentyp

child::weindepot child::* child::text()

Page 9: XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.

Prädikate

IT Zertifikat - Daten und Metadatenstandards: XPath

9

weitere Filterung des Ergebnisses durch Bedingungen in eckigen Klammern [ ] nachfolgende Prädikate nehmen gefilterte Knotenmenge des

voran gegangenem Prädikat als Ausgangspunkt Relationszeichen (=, !=, <, >, <=, >=) mathematische Operatoren (+, -, *, div, mod, Klammern) Funktionen

Page 10: XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.

Funktionen

IT Zertifikat - Daten und Metadatenstandards: XPath

10

Grundaufbau: rückgabewert funktion(parameter1, parameter*)

Knotenmengen: z.B. count(), name(), position(),… String: z.B. string(), string-length(), concat(),… Logische Funktionen (wahr/falsch): z.B. boolean(), lang() Numerische Funktionen: z.B. sum()

dementsprechend Datentypen node-set, string, boolean oder numerisch als Rückgabewert

Page 11: XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.

Beispiele

IT Zertifikat - Daten und Metadatenstandards: XPath

11

/weindepot/anbaugebiet/jahrgang/art/wein[preis="8,00"]

oder z.B.

/child::weindepot/descendant::anbaugebiet/child::jahrgang/child::art/child::wein[preis="8,00"]

string(//wein[preis="8,00"]/bezeichnung) string(//anbaugebiet/@name[1]) //wein[position()=2] concat(name(//anbaugebiet/..)," ",string(//anbaugebiet/@name[1]),":

",name(//wein),"1.: ",string(//wein[preis="8,00"]/bezeichnung),", ",string(//richtung[1]),"er ",string(//rebsorte[1])," zum ",name(//wein[1]/preis),": ",string(//wein[1]/preis)," €")

Page 12: XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.

ENDEXML Path Language