Beispiel 1
Die grundlegende XPath-Syntax ähnelt der Suche nach Dateien in einem Dateisystem. Wenn der Pfad mit einem Schrägstrich / beginnt, stellt der Pfad einen absoluten Pfad zu einem Element dar.
/AAA
Wählen Sie das Wurzelelement AAA aus
<AAA>
<BBB/>
<CCC/>
<BBB/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>
/AAA/CCC
Wählen Sie alle untergeordneten CCC-Elemente von AAA aus
<AAA>
<BBB/>
<CCC/>
<BBB/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>
/AAA/DDD/BBB
Wählt alle untergeordneten Elemente von DDD aus, ein untergeordnetes Element von AAA
<AAA>
<BBB/>
<CCC/>
<BBB/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>
Beispiel 2
Wenn der Pfad mit einem doppelten Schrägstrich // beginnt, bedeutet dies, dass alle Elemente im Dokument, die den Regeln nach dem doppelten Schrägstrich // entsprechen, ausgewählt werden (unabhängig von der hierarchischen Beziehung) //BBB
Wählen Sie alle BBB-Elemente aus
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
//DDD/BBB
Wählen Sie alle BBB-Elemente aus, deren übergeordnetes Element DDD ist
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
Beispiel 3
Das Sternchen* bedeutet, dass alle Elemente ausgewählt werden, die sich im Pfad vor dem Sternchen befinden
/AAA/CCC/DDD/*
Wählen Sie alle Elemente aus, deren Pfade an /AAA/CCC/DDD angehängt sind
<AAA>
<XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>
/*/*/*/BBB
Wählen Sie alle BBB-Elemente aus, die 3 Vorgängerelemente haben
<AAA>
<XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>
//*
Wählen Sie alle Elemente aus
<AAA>
<XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>
Beispiel 4
Der Ausdruck in der quadratischen Zahl kann das Element weiter spezifizieren, wobei die Zahl die Position des Elements im Auswahlsatz darstellt und die Funktion last() das letzte Element im Auswahlsatz
/AAA/BBB[1]
darstellt.
Wählen Sie das erste untergeordnete BBB-Element von AAA aus
<AAA>
<BBB/>
<BBB/>
<BBB/>
<BBB/>
</AAA>
/AAA/BBB[last()]
Wählen Sie das letzte untergeordnete BBB-Element von AAA aus
<AAA>
<BBB/>
<BBB/>
<BBB/>
<BBB/>
</AAA>
Beispiel 5
//@Ausweis
Wählen Sie alle ID-Attribute aus
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
//BBB[@id]
Wählen Sie BBB-Elemente mit ID-Attributen aus
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
//BBB[@name]
Wählen Sie das BBB-Element mit dem Namensattribut aus
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
//BBB[@*]
Wählen Sie BBB-Elemente mit beliebigen Attributen aus
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
//BBB[nicht(@*)]
Wählen Sie BBB-Elemente ohne Attribute aus
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
Beispiel 6
Der Wert des Attributs kann als Auswahlkriterium verwendet werden. Die Funktion normalize-space entfernt führende und nachfolgende Leerzeichen und ersetzt aufeinanderfolgende Leerzeichenfolgen durch ein einzelnes Leerzeichen
//BBB[@id='b1']
Wählen Sie das BBB-Element aus, das die Attribut-ID enthält und dessen Wert 'b1' ist.
<AAA>
<BBB id = "b1"/>
<BBB name = " bbb "/>
<BBB name = "bbb"/>
</AAA>
//BBB[@name='bbb']
Wählen Sie das BBB-Element aus, das den Attributnamen enthält und dessen Wert 'bbb' ist.
<AAA>
<BBB id = "b1"/>
<BBB name = " bbb "/>
<BBB name = "bbb"/>
</AAA>
//BBB[normalize-space(@name)='bbb']
Wählen Sie das BBB-Element aus, das den Attributnamen enthält und dessen Wert (nach dem Entfernen der führenden und nachgestellten Leerzeichen mit der Funktion normalize-space) 'bbb' ist.
<AAA>
<BBB id = "b1"/>
<BBB name = " bbb "/>
<BBB name = "bbb"/>
</AAA>
Beispiel 7
Die Funktion count() kann die Anzahl der ausgewählten Elemente zählen
//*[count(BBB)=2]
Wählen Sie Elemente mit 2 untergeordneten BBB-Elementen aus
<AAA>
<CCC>
<BBB/>
<BBB/>
<BBB/>
</CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
<EEE>
<CCC/>
<DDD/>
</EEE>
</AAA>
//*[count(*)=2]
Wählen Sie ein Element mit 2 Kindern aus
<AAA>
<CCC>
<BBB/>
<BBB/>
<BBB/>
</CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
<EEE>
<CCC/>
<DDD/>
</EEE>
</AAA>
//*[count(*)=3]
Wählen Sie ein Element mit 3 untergeordneten Elementen aus
<AAA>
<CCC>
<BBB/>
<BBB/>
<BBB/>
</CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
<EEE>
<CCC/>
<DDD/>
</EEE>
</AAA>
Beispiel 8
Die Funktion name() gibt den Namen des Elements zurück, die Funktion start-with() gibt true zurück, wenn die erste Parameterzeichenfolge der Funktion mit dem zweiten Parameterzeichen beginnt, und die Funktion enthält() gibt true zurück, wenn ihr erster Zeichenfolgenparameter zurückkehrt true, wenn der zweite String-Parameter enthalten ist.
//*[name()='BBB']
Wählen Sie alle Elemente mit dem Namen BBB aus (hier äquivalent zu //BBB)
<AAA>
<BCC>
<BBB/>
<BBB/>
<BBB/>
</BCC>
<DDB>
<BBB/>
<BBB/>
</DDB>
<BEC>
<CCC/>
<DBD/>
</BEC>
</AAA>
//*[starts-with(name(),'B')]
Wählen Sie alle Elemente aus, deren Namen mit „B“ beginnen.
<AAA>
<BCC>
<BBB/>
<BBB/>
<BBB/>
</BCC>
<DDB>
<BBB/>
<BBB/>
</DDB>
<BEC>
<CCC/>
<DBD/>
</BEC>
</AAA>
//*[contains(name(),'C')]
Wählen Sie alle Elemente aus, deren Namen „C“ enthalten.
<AAA>
<BCC>
<BBB/>
<BBB/>
<BBB/>
</BCC>
<DDB>
<BBB/>
<BBB/>
</DDB>
<BEC>
<CCC/>
<DBD/>
</BEC>
</AAA>
Beispiel 9
//CCC |
zusammengefasst werden
Wählen Sie alle CCC- und BBB-Elemente aus
<AAA>
<BBB/>
<CCC/>
<DDD>
<CCC/>
</DDD>
<EEE/>
</AAA>
/AAA/EEE |. /BBB
Wählen Sie alle BBB-Elemente und alle EEE-Elemente aus, die untergeordnete Elemente von AAA sind
<AAA>
<BBB/>
<CCC/>
<DDD>
<CCC/>
</DDD>
<EEE/>
</AAA>
/AAA/EEE |. /DDD/CCC |. /AAA |
Es gibt keine Begrenzung für die Anzahl der Pfade, die zusammengeführt werden können
<AAA>
<BBB/>
<CCC/>
<DDD>
<CCC/>
</DDD>
<EEE/>
</AAA>
Beispiel 10
Die untergeordnete Achse enthält die untergeordneten Elemente des Kontextknotens. Als Standardachse kann sie ignoriert
werden
Entspricht /child::AAA
<AAA>
<BBB/>
<CCC/>
</AAA>
/child::AAA
Entspricht /AAA
<AAA>
<BBB/>
<CCC/>
</AAA>
/AAA/BBB
Entspricht /child::AAA/child::BBB
<AAA>
<BBB/>
<CCC/>
</AAA>
/child::AAA/child::BBB
Entspricht /AAA/BBB
<AAA>
<BBB/>
<CCC/>
</AAA>
/child::AAA/BBB
Beides ist kombinierbar
<AAA>
<BBB/>
<CCC/>
</AAA>
Beispiel 11
Die Nachkommenachse enthält die Nachkommen des Kontextknotens. Ein Nachkomme bezieht sich auf einen untergeordneten Knoten oder einen untergeordneten Knoten eines untergeordneten Knotens usw., sodass die Nachkommenachse keine Attribut- und Namensraumknoten
/descendant::*
enthält.
Wählt alle Nachkommen des Dokumentstammelements aus. Das heißt, alle Elemente werden ausgewählt
<AAA>
<BBB>
<DDD>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</BBB>
<CCC>
<DDD>
<EEE>
<DDD>
<FFF/>
</DDD>
</EEE>
</DDD>
</CCC>
</AAA>
/AAA/BBB/descendant::*
Wählt alle Nachkommenelemente von /AAA/BBB aus
<AAA>
<BBB>
<DDD>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</BBB>
<CCC>
<DDD>
<EEE>
<DDD>
<FFF/>
</DDD>
</EEE>
</DDD>
</CCC>
</AAA>
//CCC/descendant::*
Wählen Sie alle Elemente aus, deren Vorfahren CCC haben
<AAA>
<BBB>
<DDD>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</BBB>
</AAA>