XPath-KompaktwissenXPath
BeispielNehmen wir einmal an, wir haben ein XML Dokument, das einen DVD-Katalog enthält. <?xml version="1.0" encoding="UTF-8"> Die einzelnen Elemente und Attribute dieses Dokumentes können mit XPath adressiert werden. XPath verhält sich dabei in weiten teilen so, wie man es von Pfaden im Dateisystem gewohnt ist. Auswahl von Elementen über absolute PfadeEin XPath Ausdruck, der mit einem Slash beginnt startet vor dem Wurzelelement des Dokuments und wird als absoluter Pfad bezeichnet. Auswahl des Root Elements "catalog" /catalog Auswahl aller dvd Elemente /catalog/dvd Auswahl aller actors Elemente aller dvds des Katalogs /catalog/dvd/actors Auswahl von Elementen unabhängig vom PfadEin XPath Ausdruck, der mit einem Doppelslash beginnt selektiert alle Vorkommen eines Elements unabhängig davon auf welcher Unterebene zur aktuellen Ebene diese sich befinden. Auswahl aller DVDs //dvd Auswahl aller Schauspieler //actor Kurzformen lokaler PfadangabenNeben der Möglichkeit absolute und unspezifizierte Pfade zu verwenden gibt es noch zwei weitere Möglichkeiten relative Pfadangaben zu formulieren. ./ verweist auf den aktuellen Knoten ../ verweist entweder auf den Eltern-Knoten oder falls kein solcher vorhanden ist auf den aktuellen Knoten. Auswahl von Elementen mit WildcardsSie können das Sternchen als Wildcard verwenden um unbekannte Unterelemente auszuwählen. Die folgenden Ausdrücke selektieren jeweils alle "Kinder" unterhalb des angegebenen Knotens. Auswahl aller Kinder des dvd Elements /catalog/dvd/* Auswahl aller Elemente //* Auswahl aller Schauspieler die über drei "Eltern"-Elemente verfügen. /*/*/*/actor Auswahl von EinzelelementenMit Hilfe von eckigen Klammern können statt ganzer Elementgruppen einer bestimmten Ebene, einzelne Elemente selektiert werden. Wähle das erste Kind des Katalogs aus /catalog/dvd[1] Wähle das letzte Kind des Katalogs aus (bitte beachten Sie das es keine Funktion namens first() gibt, wählen Sie dazu die obige Variante.) /catalog/dvd[last()] Der folgende Ausdruck wählt alle DVDs, die über eine Schauspielerliste verfügen. /catalog/dvd[actors] Mit dieser Konstruktion können Sie alle DVDs auswählen, die nach 2003 erschienen sind. /catalog/dvd[pubdate>2003] Bedingungen können auch im vorderen Teil des Pfades formuliert werden. So selektiert der folgende Ausdruck alle Titel der DVDs die nach 2003 erschienen sind. /catalog/dvd[pubdate>2003]/title Auswahl von AttributenIn XPath werden Attribute mit dem Präfix @ ausgewählt. Die restliche Syntax bleibt identisch. Dieser Ausdruck wählt alle dvd Elemente, die über das Attribut region verfügen. //dvd[@region] Das folgende Beispiel wählt alle Attribute namens region aus, unabhängig davon auf welcher ebene diese zu finden sind. //@region Möchten Sie alle Elemente von dvd selektieren, die über irgendein Attribut verfügen können Sie das folgendermaßen machen. //dvd[@*] Schließlich ist es natürlich auch Möglich die Selektion auf einen bestimmten Attributwert einzuschränken. Im Beispiel werden alle DVDs mit einem Wert von 2 für das Attribut region gewählt. //dvd[@region=2] XPath OperatorenIn Abweichung zu anderen Sprachen verwendet XPath einige spezielle Operatoren, die nicht unbedingt auf der Hand liegen, daher hier eine kleine Liste.
Sie können auch die logischen Operatoren or und and einsetzen um mehrere Bedingungen miteinander zu verbinden. |