Verarbeiten von XML-Daten

Slides:



Advertisements
Ähnliche Präsentationen
Verarbeiten und Präsentieren von
Advertisements

Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
XML - Aufbau und Struktur - mit Einsatz im B2B
Hands On – Einführung in XML
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
FH-Hof Einbindung von JavaScript Anweisungen
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)
RDF R ESOURCE D ESCRIPTION F RAMEWORK Referentin: Claudia Langer.
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.
HTML - Eine erste Annäherung
© 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.
Tinosch Ganjineh, Christian v. Prollius 1 Scalable Vector Graphics SVG.
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
XForms Von Matthias Keck.
XSL eXtensible Stylesheet Language. © Prof. T. Kudraß, HTWK Leipzig Was ist XSL? Analogie zu CSS in HTML XSL ist eine Sprache, die ein wohlgeformtes XML-Dokument.
XML Standardisierungen und Abfragesprachen
Einführung XML XML Einführung Andreas Leicht.
EXtensible Server Pages von Belrhiti El mostafa. Inhalt Was ist XSP ? Wichtige XSP Tags Erstellungsmöglichkeiten Die Basis der XSP.
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 Klassen und Objekte
XQuery-Anfragen Spezifikations- und Selektionsmethoden für Daten und Dienste Markus Mauch.
Tobias Högel & Dennis Böck,
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
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 DTD.
XML - Konzepte XHTML XML Base XPath XInclude XLink XForms XPointer
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
Datenbanktechnologie Daniel Ebner SS Mai Ulrike Lohner.
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.
Java für Fortgeschrittene
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
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.
XSL und XSLT1 eXstensible Stylesheet Language und eXstensible Stylesheet Language Transformation.
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
XSLT Voraussetzungen, trivial
XML (Extensible Markup Language)
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 1 Version 1.0a XML EXTENSIBLE MARKUP LANGUAGE.
Kurzpräsentation von Herbert Schlechta
Einführung in PHP 5.
Webseiten mit PHP, SQL, XML und Webservices Anhand praktischer Beispiele.
PHP: Operatoren und Kontrollstrukturen
XSL in der Praxis Anwendungsbeispiele für die eXtensible Stylesheet Language Andreas Kühne XML One 2000.
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
- Warum: Das HTML-Dilemma
IT-Zertifikat der Phil.Fak Kurs 4: Daten- und Metadatenstandards Patrick Sahle XML-BasicsWS 08/09.
Text Encoding Initiative Universität zu Köln Daten- und Metadatenstandards Seminarleitung: Patrick Sahle Seminarleitung: Patrick Sahle Referentin: Anna.
XML Schema Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung WS2011/2012 Hist.-kult.wiss. Informationsverarbeitung (Teil.
Geoinformation3 Geoinformation III XML Grundlagen und Dokumentspezifikation Vorlesung 12b.
IT-Zertifikat_Seminar: Metadatenstandards XSLT Eine Transformationssprache.
1 Java und XML Stephan Baldes Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg.
Kapitel 2 Grammar INDEX 1.Subjects & Verbs 2.Conjugation of Verbs 3.Subject Verb Agreement 4.Person and Number 5.Present Tense 6.Word Order: Position of.
XSLT I Re-usable Content in 3D und Simulationssystemen Dozent: Prof. Manfred Thaller Referentin: Elisabeth Chang.
Datentransformation mit XSLT Seminarvortrag von Johannes Engels.
Einführung in XML 1-Tages-Kurs.
Dokumentenproduktion im Medienzentrum
 Präsentation transkript:

Verarbeiten von XML-Daten Peter Langmann XSLT

Lexikalischer Scanner Parsing Eingabetext Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit und Gültigkeit in Bezug auf ein Regelsystem. Dabei wird der Text in "Tokens" zerlegt (lat. Pars) und in der Regel in einen Syntaxbaum überführt, welcher die Hierarchie der Elemente ausdrückt. Lexikalischer Scanner Tokens / "Wörter" Parser Parse-Baum Weitere Anwendung 19.10.2006

Parser und XSLT-Prozessor Programme, die versuchen, den Inhalt von XML-Dokumenten zu „verstehen“, benutzen dazu Parser. Diese prüfen das Dokument auf Wohlgeformtheit und Gültigkeit gemäß den Regeln in der DTD oder im XML-Schema (Validierung). XSLT-Prozessoren transformieren die geparsten Information des XML-Files und geben die aufbereiteten Daten („result tree“) an die aufrufende Anwendung weiter. The software responsible for transforming source trees into result trees using an XSLT stylesheet is referred to as the processor. This is sometimes expanded to XSLT processor to avoid any confusion with other processors, for example an XML processor. W3C 3 XSLT- Prozessor xml Parser Validierung Anwendung zb. Browser dtd 19.10.2006

Wohlgeformtheit / Gültigkeit Wohlgeformt (well formed) ist ein Dokument, wenn es den allgemeinen Regeln von XML entspricht. Es muss keine DTD (kein Schema) vorliegen, um die Wohlgeformtheit zu prüfen. Ist ein Dokument nicht wohlgeformt, wird es vom Parser sofort zurückgewiesen. Gültig (valid) ist ein Dokument, wenn es wohlgeformt ist und den Regeln der DTD / des Schemas entspricht. Parser, die auf Gültigkeit überprüfen, nennt man „validierende Parser“. Parser können am Client laufen (z.B. integriert in Webbrowser) oder am Server (z.B. XSLT-Parser). 19.10.2006

Darstellungsmöglichkeiten von XML-Daten in Webbrowsern A. Darstellung eines XML-Files als Text im Browser B. Auslieferung eines XML-Files und eines CSS-Files: Parsing und grafische Darstellung erfolgt im Browser. 3 XML Browser Transforma tionen Grafische Ausgabe CSS Parser DTD XSLT (optional) Liefert Document Object Model CSS Client XSLT Server 19.10.2006

Schematische Darstellung von Transformationen am Server C. Transformation(en) am Server (Serialisierung). Auslieferung in verschiedensten Formaten. Serialisierungsprozess Datenbank 3 XML Transforma tionen XML Parser HTML Browser Rendering DTD PDF Browser (optional) XSLT Liefert Document Object Model PlugIn CSS Server Client 19.10.2006

„Extensible Stylesheet Language Transformations" XSLT „Extensible Stylesheet Language Transformations" XSLT = "XSLT ist eine funktionale Programmiersprache. Ihr Zweck ist die Transformation eines XML-Dokumentes in ein anderes Textdokument." Dieses kann verschiedene Formate haben, z.B. Text, HTML oder XML sein. A transformation expressed in XSLT describes rules for transforming zero or more source trees into one or more result trees. The transformation is achieved by a set of template rules. (W3C) XSLT- Prozessor Source Tree Result Tree XSLT – „rules for transforming” XLST

<xsl:stylesheet version="1.0" XSLT: Versionen XLST 1.0 (1999) ursprünglich von James Clark entwickelt.XSL URL: http://www.w3.org/TR/xslt XSLT 2.0 (2007) Für die derzeitige Weiterentwicklung ist Michael Kay verantwortlich. URL: http://www.w3.org/TR/xslt20/ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> XSLT

XSLT: „Transformation“ XML-Dokumente werden als logischer Baum betrachtet: Die Quell-Bäume („source tree“) der zu transformierenden Dokumente und durch die Transformation die entstehenden Ziel-Bäume („result tree“) der zu erzeugenden Dokumente. Eine Transformation (ausgedrückt in einem „stylesheet“) besteht aus einer Reihe von einzelnen Transformationsregeln, die Templates (deutsch "Schablonen") genannt werden. Ein Template besitzt ein auf XPath basierendes Pattern (deutsch "Muster"), das beschreibt, für welche Knoten es gilt, und einen Inhalt, der bestimmt, wie das Template seinen Teil des Zielbaums erzeugt. XSLT

XSLT: „Transformation“

XSLT Voraussetzungen, trivial XSLT-Prozessor: wir verwenden dazu die Prozessoren, der in Oxygen installiert sind. XML-Datei, die bearbeitet werden soll (*.xml), wohlgeformt, valide. XSLT-Stylesheet, das die Transformationsanweisungen enthält. (*.xsl) Ein Stylesheet mit Formatierungsklassen für unsere wichtigsten Elemente und Standard-Text (*.css) [optional] Eine DTD, optional + CSS HTML XML Source Tree XSLT- Prozessor Result Tree XML DTD TEXT XSLT - Anweisungen XSLT

Grundlegender Aufbau eines Stylesheets Ein Stylesheet ist selbst ein gültiges XML-Dokument. Es besitzt folgenden Grundaufbau: <?xml version = "1.0" ?> <xsl:stylesheet version = "1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- TEMPLATES, Verarbeitungsanweisungen --> </xsl:stylesheet> Die Tags in Stylesheets werden mit Namensraum-Angaben geschrieben. Dieser wurde im Wurzelelement deklariert. <xsl:template match = "/"> <xsl:apply-templates /> </xsl:template> XLST

Über Ausgabe-Möglichkeiten <xsl:output method = "html" doctype-public -//W3C//DTD XHTML 1.0 Transitional//EN" /> (X)HTML xsl:output method = "text" /> TEXT VRML-Code Programmcode <xsl:output method = "xml" indent = "yes" /> XML SVG PDF XSLT

Bausteine des Stylesheets Es gibt 37 XSLT-Elemente, davon 2 Hauptelemente, 12 Elemente der obersten Ebene sowie 23 Anweisungselemente. Bestimmte Elemente verwenden als Attribut Xpath-Ausdrücke. Hauptelement <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:template match="gruss"> <h1> <xsl:value-of select="."/> </h1> </xsl:template> Element oberste Ebene Xpath-Ausdruck Text, der in den Ausgabestrom geschrieben wird Anweisungselement XSLT

XSLT-Beispiel XSLT-Stylesheet: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output doctype-public="-//W3C//DTD HTML 4.01//EN" method="html" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <html> <head></head> <body> <xsl:apply-templates select=„/personenliste/person" /> </body> </html> </xsl:template> <xsl:template match=„person"> <h1> <xsl:value-of select="." /> </h1> </xsl:stylesheet> XSLT

Analyse des Beispiels (1) 1. Das XSLT-Stylesheet wird geparst und in eine Baumstruktur überführt. 2. Das Gleiche passiert mit dem XML-Dokument. 3. Der Prozessor startet an der Wurzel des XML-Dokuments. Dieser ist nicht das oberste Element, sondern die "Wurzel des Dokuments„ („root node“) (inkl. aller Verarbeitungsanweisungen etc.). Der Wurzelknoten ist der Startkontext. WURZEL des Dokuments Startkontext Verarbeitungsanweisungen, wie <?xml-stylesheet .../> Kommentare <!-- --> Wurzel-Element <personenliste.../> Weitere Elemente XSLT

Analyse des Beispiels (2) 4. Prozessor: Muss ich irgendwelche Knoten verarbeiten? Ja, es gibt weitere Knoten im Dokument. Und: Es gibt ein "Template" (Vorlage, Schablone). <xsl:template match = "/"> Kontext = / 5. Was soll ich tun? <xsl:apply-templates select = "/lv-group/p" /> "Wähle die Kind-Knoten „p" und wende vorhandene Templates auf sie an." Kontext /lv-group/p WURZEL des Dokuments Kontext = / Andere Knoten auf der ersten Ebene ... Wurzel-Element <personenliste> XSLT

Analyse des Beispiels (3) 6. Gibts ein spezielles Template für „person"? Ja, und zwar: <xsl:template match = „p"> 7. Was muss ich jetzt tun? Schreibe in den Ausgabestrom: ==> <h1> Dann nimm den aktuellen Knoten (und ggf. seine Kinderknoten) und schreibe deren "Inhalt": ==> <xsl:value-of select = "."/> ==> </h1> 8. Gibt es weitere Knoten personenliste/person, würde jetzt der person[2] dran kommen. Dann kehrt der Prozessor zum aufrufenden Template zurück. XSLT

XPath Die XML Path Language (XPath) ist eine vom W3-Konsortium entwickelte Anfragesprache, um Teile eines XML-Dokumentes zu adressieren. Version 1.0: http://www.w3.org/TR/xpath Version 2.0: http://www.w3.org/TR/xpath20/ XPath

Xpath 1.0: Definition nach W3C The primary purpose of XPath is to address parts of an XML document. In support of this primary purpose, it also provides basic facilities for manipulation of strings, numbers and booleans. XPath uses a compact, non-XML syntax to facilitate use of XPath within URIs and XML attribute values. XPath operates on the abstract, logical structure of an XML document, rather than its surface syntax. XPath gets its name from its use of a path notation as in URLs for navigating through the hierarchical structure of an XML document. XPath models an XML document as a tree of nodes. There are different types of nodes, including element nodes, attribute nodes and text nodes. XPath defines a way to compute a string-value for each type of node. XPath

XPath: Definition XPath ist eine Nicht-XML-Sprache, die dazu dient, bestimmte Teile eines XML-Dokuments zu identifizieren. XPath sieht das Dokument (*.xml) als einen Baum von Knoten an. Für jedes Dokument gibt es genau einen einen Wurzelknoten und Wurzelelement. "/lv-group/p lokalisiert die Personen-Knoten / den Wurzelknoten selbst. Der Name des Wurzelements ist lv-group. XSLT benötigt XPath-Ausdrücke in bestimmten Attributen, um Knoten oder andere Teile des Dokuments auszuwählen, die verarbeitet werden sollen. <xsl:apply-templates select = "/lv-group/p"/> XPath

XPath: Wurzelknoten – „root node“ (1) XPath kennt 7 Arten von Knoten im XML-Dokument: 1. Wurzelknoten („root node“): Der Knoten, der das gesamte XML-Dokument enthält. Adressierung mit /. Es enthält nicht nur das „Wurzelelement“ des Dokuments, sondern auch alle anderen Anweisungen davor und dahinter. The root node is the root of the tree. A root node does not occur except as the root of the tree. The element node for the document element is a child of the root node. The root node also has as children processing instruction and comment nodes for processing instructions and comments that occur in the prolog and after the end of the document element. XPath

XPath: Wurzelknoten – „root node“ (2) Wurzelknoten („root node“) – Grafische Darstellung WURZEL des Dokuments Startkontext Verarbeitungsanweisungen, wie <?xml-stylesheet .../> Kommentare <!-- --> Wurzel-Element <lv-group .../> Weitere Elemente XPath

XPath: Wurzelknoten – „root node“ (3) Wurzelknoten („root node“) – Grafische Darstellung im „Baumeditor“ von Oxygen. XPath

XPath: Elementknoten: Wurzelelement 2. Elementknoten: Enthält das adressierte Element und seine Kinder (Element-, Text-, Kommentar-, Verarbeitungsanweisungsknoten) Eine besondere Stellung nimmt das Element ein, welches das Wurzelelement bildet („element node for the document element”). Dieses Element darf ebenfalls nur einmal im Dokument vorkommen. Es enthält alle untergeordneten Knoten des Dokuments. XPath

XPath: Elementknoten: Beispiele Hier Beispiele für Knotenmengen, die sich aus der Selektion eines Elements ergeben. XPath

XPath: Attributknoten 3. Attributknoten: Die Elementknoten, zu denen die Attribute gehören, sind deren Elternknoten. Jedoch sind Attributknoten sind keine Kinder ihres Elternknoten! Nach Attributen müssen Sie speziell fragen. XPath

XPath: Textknoten 4. Textknoten: enthalten den Text aus einem Element. Entity- und Zeichenreferenzen sowie CDATA-Abschnitte werden aufgelöst. XLST

XPath: Weitere Knoten 5. Kommentarknoten: Text der Kommentare 6. Verarbeitungsknoten (PI-Knoten) 7. Namensraum-Knoten XLST

XPath: Kontextknoten Kontextknoten ist die Bezeichnung für den gerade gewählten, "aktuellen" Knoten. Xpath-Ausdrücke werden von diesem Punkt aus berechnet. Kontextknoten beinhalten noch weitere Informationen (Position, Größe etc.) XLST

XPath: Lokalisierungspfade Ein Lokalisierungspfad bezeichnet eine Menge von Knoten in einem gegebenen Dokument. <xsl:template match = "/" /> wählt den Wurzelknoten (und seine Kinder!) aus. <xsl:template match = „p" /> wählt den Elementknoten <p> (und seine Kinder) relativ zum Kontextknoten aus. <p> muss ein Kindknoten zum Kontextknoten sein, in dem sich der XSLT-Prozess gerade befindet. Wieviele Knoten der XML-Datei werden damit ausgewählt? <xsl:value-of select = "." /> wählt den gerade aktivierten Kontextknoten (und seine Kinder). Bitte beachten Sie, dass XPath-Ausdrücke immer Knotenmengen zurückgeben! Und dass ein Knoten mehr ist als nur sein Text, aber noch keine Attributwerte beinhaltet. XPath

XPath: Lokalisierungspfade: relativ Ein relativer XPath-Adruck geht in der Adressierung immer vom aktuellen Kontextknoten aus. Beispiele: <xsl:template match = „p" /> setzt voraus, dass p ein Kind des Kontextknotens (z.B. lv-group) ist. <xsl:value-of select = "." /> wählt den gerade aktivierten Kontextknoten (und seine Kinder). <xsl:template match = „lv-group/p" /> Damit diese Adressierung keine leere Knotenmenge zurückgibt, muss der Kontextknoten das Wurzelelement („root node“) sein. <xsl:value-of select = ".." /> wählt den Elternknoten des Kontextknoten. Ist der Kontextknoten ident so wird p gewählt. XPath

XPath: Lokalisierungspfade: absolut Ein absoluter XPath-Ausdruck beginnt immer an der Dokumentwurzel, d.h. mit einem /. Der Kontextkonten wird nicht berücksichtigt. <xsl:template match = "/" /> wählt den Wurzelknoten des Dokuments. <xsl:template match = "/lv-grou/p/ident" /> adressiert das Element ident absolut. XPath

XPath: Lokalisierungsschritte für Attribute Auch Attribute sind ein Teil von XPath. Allerdings sind sie keine Kinder eines Elementknotens und werden daher auch nicht automatisch selektiert. Sie müssen vielmehr die Attribute explizit ansprechen. <xsl:value-of select = "@sex" /> wählt das Attribut "sex" des aktuellen Kontextknotens und gibt dessen Wert aus. <xsl: value-of select = "/lv-group/p/@sex" /> adressiert das Attribut absolut. XPath

XPath: Nur den Text eines Knotens ausgeben Wie Sie wissen, werden bei der Selektion eines Elementknotens alle untergeordneten Kinderknoten (auch jene, die keine Elementknoten, sondern etwa auch Kommentarknoten etc. sind) mit ausgewählt. Wollen Sie nur den Textknoten eines Elements ausgeben, verwenden Sie den "Knotentest" text() <xsl: value-of select = "/lv-group/p/text()" /> gibt nur den Text des p-Elements aus. XPath

XPath: Wildcards, mehrere Treffer Wildcards sprechen unterschiedliche Element- und Knotentypen gleichzeitig an. * wählt alle Elementknoten aus (nicht aber: Attribute, Textknoten, Kommentare, PIs). Z.B. wählt dc:* alle Elementknoten des Namensraums dc aus. @* wählt alle Attributknoten. node() wählt alle Knoten im aktuellen Kontext. // wählt unter allen Abkömmlingen des Kontextknotens und dem Kontextknoten: z.B. wählt //vorname alle vorname-Elemente. | undiert XPath-Ausdrücke und liefert die Vereinigungsmenge beider Ausdrücke. XPath

XPath: Kommentare und Text auswählen comment() Dieser Knotentest liefert den Inhalt des Kommentars im jeweiligen Kontext. text() Liefert den Textinhalt eines Kontextknotens (nicht aber die der Kindelemente) XPath

W3C Achsen child descendant parent ancestor following-sibling http://www.w3.org/TR/xpath#axes Lokalisierungspfade, abgekürzt: http://www.w3.org/TR/xpath#path-abbrev Lokalisierungspfade, absolut: http://www.w3.org/TR/xpath#location-paths child descendant parent ancestor following-sibling preceding-sibling following preceding attribute namespace self descendant-or-self ancestor-or-self XPath

XPath: Prädikate, Funktionen, Zahlen Manchmal ist es notwendig, die Treffermenge der gefundenen Knoten weiter zu filtern. Dies kann durch "Prädikate" geschehen. Prädikate beinhalten eine Bedingung bzw. einen Ausdruck, der wahr oder falsch ist (Boolscher Wert). Ist der Ausdruck für einen Knoten falsch, wird er aus der Liste gelöscht. Beispiele: /personenliste/person[@sex='m'] /personenliste/person[name = "Brel"] personenliste/person[1] Im Rahmen von Prädikaten werden häufig auch Funktionen und Zahlenoperationen verwendet. XPath

XPath: Funktionen Funktionen arbeiten mit Knotenmengen oder geben Informationen über Knotenmengen zurück. Funktionen liefern Daten folgender Typen zurück: Boolscher Wert, Zahl, Knotenmenge, String. Beispiele für Funktionen: last() count() position() name() string() starts-with() contains(), substring() subsstring-before(), substring-after() string-length() not() XPath

XPath: Mathematische Operatoren In XPath-Ausdrücken kann auch gerechnet werden: + Addition - Subtraktion gruss[last()-1] => vorletzter Knoten * Multiplikation div Division 6,5 div 3 => 2 mod Restbildung 6,5 mod 1,5 => 0,5 starts-with() contains(), substring() subsstring-before(), substring-after() string-length() not() XPath

XSLT: Verzweigungselemente IF-Element <xsl:if test = "count(//wer) = 5"> [...] </xsl:if> CHOOSE-Element <xsl:choose> <xsl:when test = [Bedingung]> [...Ausgabe...] </xsl:when> [...weitere Bedingungen...] <xsl:otherwise>[...] </xsl:otherwise> </xsl:choose> XSLT