XPath Was ist XPath XPath ist eine Syntax für das Definieren der Teile eines XML-Dokumentes. XPath benutzt Pfade, um XML-Elemente zu definieren. XPath.

Slides:



Advertisements
Ähnliche Präsentationen
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Advertisements

Verarbeiten und Präsentieren von
XML: Extensible Markup Language
Zusammenfassung der Vorwoche
Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML
7. Natürliche Binärbäume
Zurück zur ersten Seite n Style Sheets sind im Prinzip Formatvorlagen für HTML-Dokumente n Über Style Sheets lassen sich zentrale Layout-Vorgaben für eine.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
DOM (Document Object Model)
XINDICE The Apache XML Project Name: Jacqueline Langhorst
XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.
XML - Abfragesprache Xpath. Problemstellung Unsere XML-Datei steht und wir wollen alle 1. Titel aller vergangenen Sendungen automatisch aus den Playlists.
XML-Schema HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke.
Das XQuery-Datenmodell. Gliederung Sequenzen Atomare Werte Knoten Knoteneigenschaften Sequenztypen und Knotenzugriffsfunktion Typabfrage Gleichheit von.
Robotik mit LEGO Mindstorms
© 2002 Prof. Dr. G. Hellberg 1 XML-Seminar XML-Technologie: XML in Theorie und Praxis Prof. Dr. G. Hellberg XML-Technologie: XML in Theorie und Praxis.
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
Modularization of XHTML™
XML Standardisierungen und Abfragesprachen
Einführung XML XML Einführung Andreas Leicht.
Boolesche Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet (nach dem Mathematiker George.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen.
XPointer Die Xpointer beschreiben einen Ort oder Bereich innerhalb einer XML-Instanz. Die XPointer bauen auf der XML Path Language auf. Die XPointer ist.
Xlink / Xpointer - Framework
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
6. Zusammengesetzte Daten (Verbund)
XQuery-Anfragen Spezifikations- und Selektionsmethoden für Daten und Dienste Markus Mauch.
Tobias Högel & Dennis Böck,
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
1 Seminar 2004/2005 von Auszeichnungssprache XPath Ein Referat von Wei CAI
XML Path Language XPath
- XML-Path Language (xPath) ist eine Empfehlung des W3C - es wurde entwickelt, um durch ein XML- Dokument zu navigieren - und ist ein großer Teil von.
XSLT.
Xpath und XQuery.
XML - Konzepte XHTML XML Base XPath XInclude XLink XForms XPointer
Datenbanktechnologie Daniel Ebner SS Mai Ulrike Lohner.
Effiziente Algorithmen
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 7 Folie 2 Styles (1) s.a.
XSL und XSLT1 eXstensible Stylesheet Language und eXstensible Stylesheet Language Transformation.
Verarbeiten von XML-Daten
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Primär(x)f(x)a[x]new typeof sizeof checked unchecked Unär+-~!++x--x x++ x-- (T)x Multip./Divis.*/% Addition/Subtr.+- shift > kleiner/größer = is gleich/ungleich==!=
Oliver Spritzendorfer Thomas Fekete
XSLT Voraussetzungen, trivial
Kurzpräsentation von Herbert Schlechta
SQLite und XML in PHP 5.
Einführung in PHP.
Einführung in PHP 5.
Datentypen: integer, char, string, boolean
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
PHP: Operatoren und Kontrollstrukturen
XSL in der Praxis Anwendungsbeispiele für die eXtensible Stylesheet Language Andreas Kühne XML One 2000.
Vortrag: Frames & Javascript.
SOAP.
7. Formale Sprachen und Grammatiken
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
XPath Datenmodell und Sequenzen Universität zu Köln – Historisch-Kulturwissenschaftliche Informationsverarbeitung Datenbanktechnologie – Daniel Ebner –
XML Schema Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung WS2011/2012 Hist.-kult.wiss. Informationsverarbeitung (Teil.
Variablen und Datentypen
XPath und XQuery Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme
Tutorium Software-Engineering SS14 Florian Manghofer.
Datentypen: integer, char, string, boolean
XPath und XQuery Marko Harasic
 Präsentation transkript:

XPath Was ist XPath XPath ist eine Syntax für das Definieren der Teile eines XML-Dokumentes. XPath benutzt Pfade, um XML-Elemente zu definieren. XPath definiert eine Bibliothek von Standardfunktionen. XPath ist ein Hauptelement in XSLT. XPath wird nicht in XML geschrieben. XPath ist ein W3C-Standard. XPath wurde für die Verwendung in XSLT und anderer XML-Parsing-Software entworfen. XML Technologien Seminar SS ´02 Matthias Weibel

XPath XPath modelliert ein XML-Dokument als einen Baum, der aus Knoten besteht. Es gibt verschiedene Knotentypen, unter anderem Elementknoten, Attributknoten und Textknoten. <?xml version="1.0" encoding="ISO-8859-1"?> <catalog> <cd type="rock"> <!-- my favourite record --> <title>Empire Burlesque</title> <artist>Bob Dylan</artist> </cd> . </catalog> / catalog cd <!-- my… --> title artist Empire... Bob Dylan type=“rock“ XML Technologien Seminar SS ´02 Matthias Weibel

XPath XPath verwendet Lokalisierungspfade wie in einem Dateisystem, um Knoten in einem XML-Dokument auszuwählen. /catalog/cd/artist (/child::catalog/child::cd/child::artist) <?xml version="1.0" encoding="ISO-8859-1"?> <catalog> <cd type="rock"> <title>Empire Burlesque</title> <artist>Bob Dylan</artist> </cd> <cd type="heavy metal"> <title>Back in Black</title> <artist>AC/DC</artist> . </catalog> XML Technologien Seminar SS ´02 Matthias Weibel

XPath Lokalisierungspfad Ein Lokalisierungspfad besteht aus einem oder mehreren Lokalisierungsschritten getrennt durch “/“. Lokalisierungsschritt / Lokalisierungsschritt... Ein Lokalisierungsschritt hat die folgende Form: Achse::Knotentest[Prädikat*] Die Achse spezifiziert die Beziehung zwischen den durch den Lokalisierungsschritt ausgewählten Knoten und dem Kontextknoten innerhalb des Baumes. Der Knotentest spezifiziert den Knotentyp und den erweiterten Namen der durch den Lokalisierungsschritt ausgewählten Knoten. null oder mehr Prädikate können die mittels beliebiger Ausdrücke die durch den Lokalisierungsschritt ausgewählte Knotenmenge weiter verfeinern. XML Technologien Seminar SS ´02 Matthias Weibel

XPath Beispiele Lokalisierungsschritte ancestor::div wählt alle div-Elemente aus, die Vorfahren des Kontextknotens sind child::para[attribute::type="warning"] wählt alle para-Kindelemente des Kontextknotens aus, die ein type-Attribut mit dem Wert warning besitzen child::para[position()=1] wählt das erste para-Kindelement des Kontextknotens aus child::para[attribute::type='warning'][position()=5] wählt das fünfte para-Kindelement des Kontextknotens aus, das ein Attribut type mit dem Wert warning besitzt child::para[position()=5][attribute::type="warning"] wählt das fünfte para-Kindelement des Kontextknotens aus, wenn dieses Kind ein type-Attribut mit dem Wert warning besitzt XML Technologien Seminar SS ´02 Matthias Weibel

XPath Beispiele Lokalisierungspfade /child::*/child::name/attribute::type wählt alle type-Attribute der name-Kindelemente aller Kinder des Kontextknotens. /child::catalog/child::cd/preceding-sibling::* wählt alle vorhergehenden Geschwister aller cd-Kindelement aller catalog-Kindelemente des Kontextknotens. /child::catalog/child::cd[position() = 2] wählt das zweite cd-Kindelement aller catalog-Kindelemente des Kontextknotens. /ancestor::*/attribute::* wählt alle Attribute der Vorfahrenknoten XML Technologien Seminar SS ´02 Matthias Weibel

Achse::Knotentest[Prädikat*] XPath Die Achsen Achse::Knotentest[Prädikat*] Es stehen folgende Achsen zur Verfügung: child enthält die Kinder des Kontextknotens. descendant enthält die Nachkommen des Kontextknotens. Die Nachkommenachse enthält niemals Attribut- oder Namensraumknoten. parent enthält den Elternknoten des Kontextknotens, falls es einen gibt. ancestor enthält die Vorfahren des Kontextknotens. following-sibling enthält alle nachfolgenden Geschwister des Kontextknotens; falls der Kontextknoten ein Attribut- oder Namensraumknoten ist, ist diese Achse leer. XML Technologien Seminar SS ´02 Matthias Weibel

XPath Die Achsen (Fortsetzung) preceding-sibling enthält alle vorhergehenden Geschwister des Kontextknotens; falls der Kontextknoten ein Attribut- oder Namensraumknoten ist, ist diese Achse leer. following enthält alle Knoten im gleichen Dokument wie der Kontextknoten, die nach dem Kontextknoten in Dokumentordnung auftreten, und zwar ohne seine Nachkommen und ohne Attribut- und Namensraumknoten. preceding enthält alle Knoten im gleichen Dokument wie der Kontextknoten, die vor dem Kontextknoten in Dokumentordnung auftreten, und zwar ohne seine Vorfahren und ohne Attribut- und Namensraumknoten. attribute enthält die Attribute des Kontextknotens; diese Achse ist leer, es sei denn, der Kontextknoten ist ein Elementknoten. XML Technologien Seminar SS ´02 Matthias Weibel

XPath Die Achsen (Fortsetzung) namespace enthält alle Namensraumknoten des Kontextknotens; diese Achse ist leer, es sei denn, der Kontextknoten ist ein Elementknoten. self enthält nur den Kontextknoten selbst. descendant-or-self enthält den Kontextknoten sowie die Nachkommen des Kontextknotens. ancestor-or-self enthält den Kontextknoten sowie die Vorfahren des Kontextknotens; diese Achse enthält somit immer den Wurzelknoten. XML Technologien Seminar SS ´02 Matthias Weibel

XPath XML Technologien Seminar SS ´02 Matthias Weibel (http://www.ejim.co.uk/module/overview/xpath.htm) XML Technologien Seminar SS ´02 Matthias Weibel

Achse::Knotentest[Prädikat*] XPath Knotentest Achse::Knotentest[Prädikat*] *: Selektieren aller Knoten dieser Achse child::* -> alle Kinder des Kontextknotens Knotenname: Selektieren aller Knoten mit diesem Name child::div -> alle Kinder mit Knotenname div XML Technologien Seminar SS ´02 Matthias Weibel

XPath Knotentest (Fortsetzung) Knotentyp: Selektiert alle Knoten dieses Typs. Die folgenden Knotentypen sind möglich: node() child::node() -> alle Kinder, ausser Attribut- und Namensraumknoten text() child::text() -> alle Kinder, die Texknoten sind comment() child::comment -> alle Kinder, die Kommentarknoten sind processing-instruction() child::processing-instruction -> alle Kinder, die processing instruction-Knoten sind. processing-instruction(“target“) child::proccessing-instruction(‘xml-stylesheet‘) -> processing instruction-Knoten der Form (<?xml-stylesheet ... ?>) XML Technologien Seminar SS ´02 Matthias Weibel

Achse::Knotentest[Prädikat*] XPath Prädikate Achse::Knotentest[Prädikat*] Prädikate können als Filter benutzt werden, um die Knotenmenge definiert durch Achse und Knotentest noch weiter zu verfeinern. Es sind null oder mehr Prädikate möglich. [x Operator einWert] x: kann entweder ein weiterer Lokalisierungsschritt, im Verhältnis zu den Knoten, die bis jetzt durch den Knoten-Test und der Achse selektiert werden, oder eine eingebaute XPath Funktion sein. Operator: ist ein Boolean Operator, wie “=“, “!=“, “>“, usw. (Achtung für “>“ und “<“ sollte “>“ und “<“ verwendet werden.) einWert: ist der Wert mit dem x verglichen werden sollte. XML Technologien Seminar SS ´02 Matthias Weibel

XPath Prädikate (Fortsetzung) Beispiele: [position() = 1] liefert den ersten Knoten der Knotenmenge in der Dokumentreihenfolge [attribute::type != "rock"] liefert alle Knoten der Knotenmenge, die ein Attribut “type“ besitzen und dessen Wert ungleich “rock“ ist. [position() = 1 and attribute::type != "rock"] liefert den ersten Knoten der Knotenmenge, wenn er ein Attribute “type“ besitzt und dessen Wert ungleich “rock“ ist. [attribute::type != "rock"] [position() = 1] liefert den Knoten der Knotenmenge, welcher der erste Knoten der Knotenmenge aller Knoten, die ein Attribut “type“ besitzen und dessen Wert ungleich “rock“ ist. XML Technologien Seminar SS ´02 Matthias Weibel

XPath Funktionen Die Funktionsbibliotheke von XPath enthält einen Satz von Funktionen, die es erlauben, Ausdrücke auszuwerten. Die Bibliotheke ist unterteilt in 4 Gruppen Funktionen auf Knotenmengen Übernehmen als Argument Knotenmengen, geben Knotenmengen oder Informationen über einen bestimmten Knoten der Knotenmenge zurück. Zeichenkettenfunktionen Führen auf Zeichenketteargumente Auswertungen, Formatierungen und Manipulationen durch. Boolesche Funktionen Werten die Argumentausdrücke aus, um ein boolesches Resultat zu erhalten. Zahlenfunktionen Werten die Argumentausdrücke aus, um ein numerisches Resultat zu erhalten. XML Technologien Seminar SS ´02 Matthias Weibel

XPath Knotenmengenfunktionen number last(): liefert eine Zahl, die gleich der Größe des Kontextes des ausgewerteten Ausdrucks ist. /child::*[last()] -> das letzte Kind des Kontextknotens number position(): liefert eine Zahl, die gleich der Position im Kontext des ausgewerteten Ausdrucks ist. /child::*[position()=3] -> das dritte Kind des Kontextknotens number count(node-set): liefert die Anzahl der Knoten der übergebenen Knotenmenge. count(/child::*) liefert die Anzahl Kinder des Kontextknotens XML Technologien Seminar SS ´02 Matthias Weibel

XPath Zeichenkettenfunktionen string string(object?): konvertiert ein Objekt in eine Zeichenkette string concat(string, string, string*): liefert die Verkettung ihrer Argumente. boolean starts-with(string, string): liefert den logischen Wert wahr, falls die im ersten Argument übergebene Zeichenkette mit der im zweiten Argument übergebenen Zeichenkette beginnt, und andernfalls falsch. boolean contains(string, string): liefert den logischen Wert wahr, falls die im ersten Argument übergebene Zeichenkette die im zweiten Argument übergebene Zeichenkette enthält, und andernfalls falsch. XML Technologien Seminar SS ´02 Matthias Weibel

XPath Boolesche Funktionen boolean boolean(object): konvertiert ihr Argument wie folgt in einen Boolean-Wert: Eine Zahl ergibt den Wert wahr genau dann, wenn sie weder positiv oder negativ Null noch NaN ist. Eine Knotenmenge ergibt den Wert wahr genau dann, wenn sie nicht leer ist. Eine Zeichenkette ergibt genau dann den Wert wahr, wenn ihre Länge ungleich Null ist. boolean not(boolean): liefert den Wert wahr, wenn ihr Argument falsch ist, und ansonsten falsch. boolean true(): liefert den Wert wahr. boolean false(): liefert den Wert falsch. XML Technologien Seminar SS ´02 Matthias Weibel

XPath Zahlenfunktionen number number(object?): konvertiert ihr Argument in eine Zahl. number sum(node-set): liefert die Summe aller in eine Zahl konvertierten Zeichenkettenwerte der Knoten aus der Argumentknotenmenge. number floor(number): liefert die größte Zahl (die am nächsten an positiv unendlich liegt), die nicht größer als das Argument und ganzzahlig ist. number ceiling(number): liefert die kleinste Zahl (die am nächsten an negativ unendlich liegt), die nicht kleiner als das Argument und ganzzahlig ist. number round(number): liefert die Zahl, die am nächsten am Argument liegt und die ganzzahlig ist. XML Technologien Seminar SS ´02 Matthias Weibel

XPath Abgekürzte Syntax Mit Hilfe der abgekürzten Syntax lassen sich Lokalisierungsschritte mit weniger Schreibaufwand erstellen. child (default) kann weggelassen werden. Die Standardachse ist also child. div/para ist abkürzend für child::div/child::para. parent .. wählt den Elternknoten des Kontextknotens aus. descendant // //item wählt alle item-Elemente aus dem gleichen Dokument wie der Kontextknoten aus. attribute @ ../@lang wählt das Attribut lang des Elternknotens des Kontextknotens aus. XML Technologien Seminar SS ´02 Matthias Weibel

XPath Abgekürzte Syntax (Fortsetzung) self . . wählt den Kontextknoten aus. position() = number number elem[3] wählt das dritte elem-Kindelement des Kontextknotens aus. weitere Beispiele: para[5][@type="warning"] wählt das fünfte para-Kindelement des Kontextknotens aus, falls dieses Kind ein Attribut type mit dem Wert warning besitzt. @* wählt alle Attribute des Kontextknotens aus. para[last()] wählt das letzte para-Kindelement des Kontextknotens aus. XML Technologien Seminar SS ´02 Matthias Weibel

XPath Informationsquellen w3c Spezifikation: (http://www.w3.org/TR/xpath) Deutsche Übersetzung: (http://www.informatik.hu-berlin.de/~obecker/obqo/w3c-trans/xpath-de/ XPath Explorer: (http://www.purpletech.com/xpe/index.jsp) XPath TV: (http://www.ejim.co.uk/module/overview/xpath.htm) Microsoft msdn: (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/htm/xpath_devguide_overview_86gn.asp?frame=true) XPath Referenz: (http://www.vbxml.com/xsl/XPathRef.asp) O‘Reilly Referenz: (http://www.oreilly.com/catalog/xmlnut/chapter/ch09.html) Tutorials: (http://www.zvon.org/xxl/XPathTutorial/General/examples.html) (http://www.w3schools.com/xpath/default.asp) XML Technologien Seminar SS ´02 Matthias Weibel