XPATH
XML Path Language
Xpath – XML Path Language
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
IT Zertifikat - Daten und Metadatenstandards: XPath
Baumstruktur
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)
IT Zertifikat - Daten und Metadatenstandards: XPath
Baumstruktur
4
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>
bezeichnung
22</weindepot>
„Enkircher..."
wurzel
XML-Deklarationen
weindepot
anbaugebiet
…
jahrgang
…
art
…
wein
wein
rebsorte
richtung
preis
"Riesling"
„halbtrocken"
"8,00"
IT Zertifikat - Daten und Metadatenstandards: XPath
…
Knotentypen
5







Wurzel (oberster Knoten)
Elemente
Text (reine Zeichendaten): text()
Attribute (werden wie Achsen angesprochen)
Namensräume (ebenso)
Verarbeitungsanweisungen: processinginstruction()
Kommentare: comment()
IT Zertifikat - Daten und Metadatenstandards: XPath
Aufbau
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 …
IT Zertifikat - Daten und Metadatenstandards: XPath
Achsen
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


IT Zertifikat - Daten und Metadatenstandards: XPath
Knotentest
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()

IT Zertifikat - Daten und Metadatenstandards: XPath
Prädikate
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
IT Zertifikat - Daten und Metadatenstandards: XPath
Funktionen
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
IT Zertifikat - Daten und Metadatenstandards: XPath
Beispiele
11

/weindepot/anbaugebiet/jahrgang/art/wein[preis="8,00"]
oder z.B.
/child::weindepot/descendant::anbaugebiet/child::jahrgang/child::art/chi
ld::wein[preis="8,00"]

string(//wein[preis="8,00"]/bezeichnung)

string([email protected][1])

//wein[position()=2]

concat(name(//anbaugebiet/..)," ",string([email protected][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)," €")
IT Zertifikat - Daten und Metadatenstandards: XPath
ENDE
XML Path Language

xpath-Odenthal