42
xpath #xpath

xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

xpath

#xpath

Page 2: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Inhaltsverzeichnis

Über 1

Kapitel 1: Erste Schritte mit xpath 2

Bemerkungen 2

Versionen 2

Examples 2

Beispiel-XML (ohne Namespaces) 2

Text auswählen 2

Wählen Sie ein Element aus 3

Allgemeine HTML-Operationen 3

Xpaths in der Browserkonsole testen 4

Kapitel 2: Elemente suchen, die bestimmte Attribute enthalten 5

Examples 5

Finde alle Elemente mit einem bestimmten Attribut 5

Finden Sie alle Elemente mit einem bestimmten Attributwert 5

Kapitel 3: Elemente suchen, die bestimmten Text enthalten 6

Examples 6

Finde alle Elemente mit bestimmtem Text 6

Kapitel 4: Holen Sie sich die Anzahl der Knoten 8

Syntax 8

Parameter 8

Bemerkungen 8

Examples 8

Wie viele Kinder hat Goku? 8

Wie viele Pflanzen gibt es im Haus? 8

Kapitel 5: Namensräume 10

Bemerkungen 10

Examples 10

Namespace-fähige Funktionen 10

Kapitel 6: Ortspfade und Achsen 11

Bemerkungen 11

Page 3: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Examples 11

Untergeordnete Elemente durchlaufen 11

Alle Nachkommen durchqueren 11

Ahnen durchqueren 12

Die "Selbst" -Achse 12

Durchlaufender und vorangegangener Knoten 12

Durchlaufende Attribut- und Namespace-Knoten 13

Kapitel 7: Prüfen Sie, ob der Text eines Knotens leer ist 14

Syntax 14

Bemerkungen 14

Examples 14

Prüfen Sie, ob Deborah einen Master hat und der Textwert nicht leer ist 14

Prüfen Sie, ob Dobby über einen Master verfügt und der Textwert nicht leer ist 14

Kapitel 8: Prüfen Sie, ob ein Knoten vorhanden ist 16

Syntax 16

Bemerkungen 16

Examples 16

Hat das Tier Stoßzähne? 16

Hat das Tier Hörner? 16

Gibt es Pflanzen im Haus? 17

Kapitel 9: Ruft Knoten relativ zum aktuellen Knoten ab 18

Syntax 18

Parameter 18

Bemerkungen 19

Examples 19

Finde meine Vorfahren 19

Finde meine Eltern 19

Finde meinen Großvater 20

Finde meinen Bruder 20

Holen Sie sich alle Avatare vor Parashurama 21

Holen Sie sich alle Avatare nach Parashurama 21

Holen Sie sich alle Avatare außer dem aktuellen (Parusharama) 22

Page 4: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Holen Sie sich alle Details (Kindknoten) von House 22

Holen Sie sich alle Zimmer (unmittelbare Kinder namens Room) in House 23

Holen Sie sich alle Zimmer (unabhängig von der Position) in House 23

Kapitel 10: Suchen Sie nach Knoten, die ein bestimmtes Attribut haben 25

Syntax 25

Parameter 25

Bemerkungen 25

Examples 25

Suchen Sie nach Knoten mit einem bestimmten Attribut 25

Suchen Sie nach Knoten mit einem bestimmten Attributwert 26

Suchen Sie nach Knoten, indem Sie den Wert eines Attributs mit einem Teilstring vergleiche 26

Finden Sie Knoten durch Übereinstimmen der Teilzeichenfolge des Attributwerts (ohne Berück 27

Suchen Sie nach Knoten, indem Sie einen Teilstring mit dem Anfang des Attributwerts angebe 27

Suchen Sie nach Knoten, indem Sie einen Teilstring verwenden, der mit dem Ende des Attribu 28

Kapitel 11: Wählen Sie Knoten aus, deren Namen einer Zeichenfolge entsprechen oder diese e29

Syntax 29

Parameter 29

Bemerkungen 29

Examples 29

Suchen Sie nach Knoten mit Namen als Licht, Gerät oder Sensor 29

Suchen Sie nach Knoten, deren Name Light enthält 30

Suchen Sie nach Knoten, deren Name mit Stern beginnt 31

Suchen Sie nach Knoten, deren Name mit Ball endet 31

Suche nach Knoten mit Namenslicht (Groß- und Kleinschreibung wird nicht berücksichtigt) 32

Kapitel 12: Wählen Sie Knoten basierend auf ihren untergeordneten Elementen aus 34

Examples 34

Wählen Sie Knoten basierend auf der untergeordneten Anzahl aus 34

Wählen Sie Knoten basierend auf einem bestimmten untergeordneten Knoten aus 35

Credits 37

Page 5: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Über

You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: xpath

It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official xpath.

The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.

Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected]

https://riptutorial.com/de/home 1

Page 6: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kapitel 1: Erste Schritte mit xpath

Bemerkungen

XPath ist eine Sprache zum Adressieren von Teilen eines XML-Dokuments.

Es wird in XSLT verwendet und ist eine Teilmenge von XQuery. Bibliotheken sind auch für die meisten anderen Programmiersprachen verfügbar.

XPath ist ein internationaler Standard mit von W3C veröffentlichten Spezifikationen:

XPath 1.0: XML Path Language (XPath), Version 1.0•XPath 2.0: XML Path Language (XPath) 2.0 (zweite Ausgabe)•XPath 3.0: XML Path Language (XPath) 3.0•

Versionen

Ausführung Veröffentlichungsdatum

1,0 1999-12-16

2,0 2007-01-23

3,0 2014-04-08

3.1 (W3C-Kandidatenempfehlung) 2015-12-17

Examples

Beispiel-XML (ohne Namespaces)

Hier ist ein Beispiel-XML, gegen das Beispiel-XPaths geschrieben werden können:

<r> <e a="1"/> <f a="2" b="1">Text 1</f> <f/> <g> <i c="2">Text 2</i> Text 3 <j>Text 4</j> </g> </r>

Text auswählen

https://riptutorial.com/de/home 2

Page 7: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Für das Beispiel-XML (ohne Namespaces):

Diese XPath,

/r/f/text()

wählt den Textknoten mit diesem String-Wert aus:

"Text 1"

Und dieser XPath,

string(/r/f)

gibt den String-Wert von f , der auch:

"Text 1"

Wählen Sie ein Element aus

Für das Beispiel-XML (ohne Namespaces):

Diese XPath,

/r/e

wird dieses Element auswählen:

<e a="1"/>

Allgemeine HTML-Operationen

Wenn die Eingabe HTML DOM ist

<html> <body> <a>link</a> <div class='container' id='divone'> <p class='common' id='enclosedone'>Element One</p> <p class='common' id='enclosedtwo'>Element Two</p> </div> </body> </html>

Suchen Sie ein Element mit einer bestimmten ID auf der gesamten Seite

//*[@id='divone'] # Returns <div class='container' id='divone'>

https://riptutorial.com/de/home 3

Page 8: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Suchen Sie ein Element mit einer bestimmten ID in einem bestimmten Pfad

/html/body/div/p[@id='enclosedone'] # Returns <p class='common' id='enclosedone'>Element One</p>

Wählen Sie ein Element mit einer bestimmten ID und Klasse aus

//p[@id='enclosedone' and @class='common'] # Returns <p class='common' id='enclosedone'>Element One</p>

Wählen Sie den Text eines bestimmten Elements aus

//*[@id='enclosedone']/text() # Returns Element One

Xpaths in der Browserkonsole testen

Eine schnelle Methode zum Testen Ihres xpath ist in der Konsole Ihres Browser-Entwicklertools.

Format ist

$x('//insert xpath here')

$ - Gibt an, dass es sich um einen Selektor handelt.

x - gibt an, dass xpaths verwendet wird

Beispiel:

$x("//button[text() ='Submit']")

Bei Eingabe dieses Befehls werden alle Vorkommen von Elementen zurückgegeben, bei denen es sich um Schaltflächen handelt, deren Text gleich "Senden" ist.

Erste Schritte mit xpath online lesen: https://riptutorial.com/de/xpath/topic/883/erste-schritte-mit-xpath

https://riptutorial.com/de/home 4

Page 9: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kapitel 2: Elemente suchen, die bestimmte Attribute enthalten

Examples

Finde alle Elemente mit einem bestimmten Attribut

Stellen Sie sich folgendes XML vor:

<root> <element foobar="hello_world" /> <element example="this is one!" /> </root>

/root/element[@foobar]

und gibt das <element foobar="hello_world" /> .

Finden Sie alle Elemente mit einem bestimmten Attributwert

Stellen Sie sich folgendes XML vor:

<root> <element foobar="hello_world" /> <element example="this is one!" /> </root>

Der folgende XPath-Ausdruck:

/root/element[@foobar = 'hello_world']

gibt das <element foobar="hello_world" /> .

doppelte Anführungszeichen können auch verwendet werden:

/root/element[@foobar="hello_world"]

Elemente suchen, die bestimmte Attribute enthalten online lesen: https://riptutorial.com/de/xpath/topic/6488/elemente-suchen--die-bestimmte-attribute-enthalten

https://riptutorial.com/de/home 5

Page 10: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kapitel 3: Elemente suchen, die bestimmten Text enthalten

Examples

Finde alle Elemente mit bestimmtem Text

Stellen Sie sich folgendes XML vor:

<root> <element>hello</element> <another> hello </another> <example>Hello, <nested> I am an example </nested>.</example> </root>

Der folgende XPath-Ausdruck:

//*[text() = 'hello']

gibt das <element>hello</element> , nicht jedoch das Element <another> . Dies liegt daran, dass das Element <another> Leerzeichen um den hello Text enthält.

Um sowohl <element> als auch <another> abzurufen, könnte man Folgendes verwenden:

//*[normalize-space(text()) = 'hello']

oder

//*[normalize-space() = 'hello']

Dadurch wird der umgebende Leerraum getrimmt, bevor der Vergleich durchgeführt wird. Hier können wir sehen, dass der Node-Bezeichner text() bei Verwendung von normalize-space optional normalize-space .

Um ein Element zu finden, das bestimmten Text enthält, können Sie die Funktion contains verwenden. Der folgende Ausdruck gibt das <example> -Element zurück:

//example[contains(text(), 'Hello')]

Wenn Sie Text suchen möchten, der sich über mehrere untergeordnete / Textknoten erstreckt, können Sie verwenden . anstelle von text() . . bezieht sich auf den gesamten Textinhalt des Elements und seiner untergeordneten Elemente.

https://riptutorial.com/de/home 6

Page 11: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

//example[. = 'Hello, I am an example .']

Um die mehreren Textknoten anzuzeigen, können Sie Folgendes verwenden:

//example//text()

was wird zurückkehren:

"Hallo, "•"Ich bin ein Beispiel"•"."•

Und um den gesamten Textinhalt eines Elements klarer zu sehen, kann man die string Funktion verwenden:

string(//example[1])

oder nur

string(//example)

Hallo, ich bin ein Beispiel.

Letzteres funktioniert, da XPath 1.0 bei der Übergabe eines Knotensatzes an Funktionen wie string nur den ersten Knoten (in Dokumentreihenfolge) in diesem Knotensatz betrachtet und den Rest ignoriert.

so:

string(/root/*)

würden zurückkehren:

Hallo

Elemente suchen, die bestimmten Text enthalten online lesen: https://riptutorial.com/de/xpath/topic/1903/elemente-suchen--die-bestimmten-text-enthalten

https://riptutorial.com/de/home 7

Page 12: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kapitel 4: Holen Sie sich die Anzahl der Knoten

Syntax

Anzahl (Knotensatz)•

Parameter

Funktion kehrt zurück

Anzahl Gesamtanzahl der Knoten in der Knotengruppe

Bemerkungen

Wir können dies in Kombination mit anderen Funktionen und Achsen verwenden, um unsere Bedürfnisse zu erfüllen.

Examples

Wie viele Kinder hat Goku?

XML

<Goku> <child name="Gohan"/> <child name="Goten"/> </Goku>

XPATH

count(/Goku/child)

AUSGABE

2.0

Wie viele Pflanzen gibt es im Haus?

XML

<House>

https://riptutorial.com/de/home 8

Page 13: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

<LivingRoom> <plant name="rose"/> </LivingRoom> <TerraceGarden> <plant name="passion fruit"/> <plant name="lily"/> <plant name="golden duranta"/> </TerraceGarden> </House>

XPATH

count(/House//plant)

AUSGABE

4.0

Holen Sie sich die Anzahl der Knoten online lesen: https://riptutorial.com/de/xpath/topic/4463/holen-sie-sich-die-anzahl-der-knoten

https://riptutorial.com/de/home 9

Page 14: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kapitel 5: Namensräume

Bemerkungen

XPath 1.0 hat nicht das Konzept eines Standard-Namespaces.

Die im ursprünglichen XML-Dokument definierten Namespace-Präfixe wirken sich nicht auf XPath-Namespace-Präfixe aus, die explizit beim XPath-Provider registriert werden müssen. Andernfalls können Präfixe im XPath-Ausdruck nicht verwendet werden.

Examples

Namespace-fähige Funktionen

<root xmlns="http://test/"> <element xmlns:example="http://foobar/"> <example:hello_world attribute="another example" /> </element> </root>

Der Ausdruck /root gibt nichts zurück, da es auf der Root-Ebene des Dokuments kein nicht mit Namen versehenes Element namens root . Folgendes wird jedoch das Element <root xmlns="http://test/"> .

/*[namespace-uri() = 'http://test/' and local-name() = 'root']

Namensräume online lesen: https://riptutorial.com/de/xpath/topic/2324/namensraume

https://riptutorial.com/de/home 10

Page 15: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kapitel 6: Ortspfade und Achsen

Bemerkungen

Ein XPath- Standortpfad besteht aus einer Reihe von Standortschritten, die durch ein Zeichen / getrennt sind:

step1/step2/step3

Ein Positionsschritt enthält eine Achse , einen Knotentest und eine optionale Liste von Prädikaten . Die Achse und der Knotentest werden durch zwei Doppelpunktzeichen :: . Die Prädikate sind in eckigen Klammern angegeben:

axis::nodeTest[predicate1][predicate2]

Die Auswertung eines Lokalisierungspfad beginnt mit einem Knotensatz den Kontextknoten durch den Kontext des Ausdrucks oder der Wurzelknoten, wenn die Positionspfad beginnt mit einem gegebenen enthält / . Bei jedem Schritt wird jeder Knoten N in der ursprünglichen Knotengruppe durch die Menge der Knoten ersetzt, die

kann von N nach der angegebenen Achse erreicht werden ,•entspricht dem Knotentest und•entspricht allen Prädikaten .•

Das Ergebnis einer Lage Pfadausdruck ist der letzte Knotensatz erhalten wird, nachdem alle Schritte der Verarbeitung Lage.

Examples

Untergeordnete Elemente durchlaufen

Durchlaufen von dem Wurzelknoten zu einem Abkömmling Elemente der Verwendung von child - Achse:

/child::html/child::body/child::div/child::span

Da die child Achse die Standardachse ist, kann dies als abgekürzt werden:

/html/body/div/span

Alle Nachkommen durchqueren

Mit den descendant und descendant-or-self können alle untergeordneten Elemente eines Knotens in beliebiger Tiefe gesucht werden. Im Gegensatz dazu das child durchläuft Achse nur unmittelbare

https://riptutorial.com/de/home 11

Page 16: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kinder.

/child::html/descendant::span /child::html/descendant-or-self::*

Der doppelte Schrägstrich // ist eine Abkürzung für /descendant-or-self::node()/ . Die folgenden Ausdrücke sind also gleichwertig:

table//td child::table/descendant-or-self::node()/child::td child::table/descendant::td table/descendant::td

Ahnen durchqueren

Die parent Achse enthält nur das übergeordnete Element eines Knotens. Der folgende Ausdruck wählt das html Element aus, indem ein Umweg über das body Element genommen wird:

/child::html/child::body/parent::html

.. ist eine Verknüpfung für parent::node()

Die Achsen " ancestor und " ancestor-or-self durchlaufen alle Vorfahren eines Knotens. Der folgende Ausdruck gibt alle div Elemente zurück, die Vorfahren des Kontextknotens sind:

ancestor::div

Die "Selbst" -Achse

Die self Achse enthält nur den Kontextknoten selbst. Der Ausdruck . ist eine Abkürzung für self::node() und passt immer zum Kontextknoten. Die . Shortcut ist nützlich, um Nachkommen des Kontextknotens aufzulisten. Die folgenden Ausdrücke sind gleichwertig:

.//span self::node()/descendant-or-self::node()/child::span descendant::span

Die self kann in XPath 1.0-Prädikaten hilfreich sein. Um beispielsweise alle h1 , h2 und h3 Kinder des h3 auszuwählen:

*[self::h1 or self::h2 or self::h3]

Durchlaufender und vorangegangener Knoten

Die following-sibling und preceding-sibling enthalten die Geschwister vor oder nach dem Kontextknoten, und die following und preceding Achsen enthalten alle Knoten im Dokument vor oder nach dem Kontextknoten.

https://riptutorial.com/de/home 12

Page 17: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Keine dieser Achsen enthält Attribut- oder Namespace-Knoten.•Die following Achse enthält keine Nachkommen.•Die preceding Achse enthält keine Vorfahren.•

Beispiele:

following::span[1] following-sibling::*[last()]

Durchlaufende Attribut- und Namespace-Knoten

Die attribute und namespace Achsen enthalten alle Attribut- und Namespace-Knoten eines Elements. Das Kürzel @ steht für attribute:: , daher sind die folgenden gleichwertig:

child::div/attribute::class div/@class

Ortspfade und Achsen online lesen: https://riptutorial.com/de/xpath/topic/6171/ortspfade-und-achsen

https://riptutorial.com/de/home 13

Page 18: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kapitel 7: Prüfen Sie, ob der Text eines Knotens leer ist

Syntax

boolean (path_to_node / text ())•string (path_to_node)! = ''•

Bemerkungen

Die boolesche Funktion hat andere Zwecke

Prüfen Sie, ob ein Knoten vorhanden ist1. Prüfen Sie, ob das Argument keine Zahl ist (NaN) oder 0 ist2.

String-Funktion wird verwendet, um den String-Wert eines Knotens zurückzugeben.

Examples

Prüfen Sie, ob Deborah einen Master hat und der Textwert nicht leer ist

XML

<Deborah> <address>Dark world</address> <master>Babadi</master> <ID>#0</ID> <colour>red</colour> <side>evil</side> </Deborah>

XPATH

boolean(/Deborah/master/text())

ODER

string(/Deborah/master) != ''

AUSGABE

true

Prüfen Sie, ob Dobby über einen Master verfügt und der Textwert nicht leer ist

https://riptutorial.com/de/home 14

Page 19: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

XML

<Dobby> <address>Hogwartz</address> <master></master> <colour>wheatish</colour> <side>all good</side> </Dobby>

XPATH

boolean(/Dobby/master/text())

ODER

string(/Dobby/master) != ''

AUSGABE

false

Prüfen Sie, ob der Text eines Knotens leer ist online lesen: https://riptutorial.com/de/xpath/topic/7445/prufen-sie--ob-der-text-eines-knotens-leer-ist

https://riptutorial.com/de/home 15

Page 20: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kapitel 8: Prüfen Sie, ob ein Knoten vorhanden ist

Syntax

boolean (path_to_node)•

Bemerkungen

Die boolesche Funktion hat andere Zwecke

Prüfen Sie, ob eine Zeichenfolge leer ist1. Prüfen Sie, ob das Argument keine Zahl ist (NaN) oder 0 ist2.

Examples

Hat das Tier Stoßzähne?

XML

<Animal> <legs>4</legs> <eyes>2</eyes> <horns>2</horns> <tail>1</tail> </Animal>

XPATH

boolean(/Animal/tusks)

AUSGABE

false

Hat das Tier Hörner?

XPATH

<Animal> <legs>4</legs> <eyes>2</eyes> <horns>2</horns> <tail>1</tail> </Animal>

https://riptutorial.com/de/home 16

Page 21: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

XPATH

boolean(/Animal/horns)

AUSGABE

true

Gibt es Pflanzen im Haus?

XML

<House> <LivingRoom> <plant name="rose"/> </LivingRoom> <TerraceGarden> <plant name="passion fruit"/> <plant name="lily"/> <plant name="golden duranta"/> </TerraceGarden> </House>

XPATH

boolean(/House//plant)

AUSGABE

true

Prüfen Sie, ob ein Knoten vorhanden ist online lesen: https://riptutorial.com/de/xpath/topic/7432/prufen-sie--ob-ein-knoten-vorhanden-ist

https://riptutorial.com/de/home 17

Page 22: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kapitel 9: Ruft Knoten relativ zum aktuellen Knoten ab

Syntax

Alle Vorfahren eines Knotens/ Pfad zum Knoten / Ancestor :: node ()•

1.

Ein bestimmter Vorfahr eines Knotens/ pfad zum knoten / ancestor :: ancestor_name•

2.

Elternteil eines Knotens/ Pfad zum Knoten / parent :: node ()•

3.

Folgende Geschwister eines Knotens/ Pfad zum Knoten / Folgendes Geschwister :: node ()•

4.

Ein bestimmtes Geschwister, das einem Knoten folgt/ Pfad zum Knoten / Folgendes-Geschwister :: Geschwistername•

5.

Vorgängergeschwister eines Knotens/ Pfad zum Knoten / Vorgänger-Geschwister :: node ()•

6.

Ein bestimmtes Geschwister vor einem Knoten/ Pfad zum Knoten / Vorgänger-Geschwister :: Geschwistername•

7.

Alle unmittelbar untergeordneten Knoten eines Knotens/ Pfad zum Knoten / child :: node ()•

8.

Ein bestimmter untergeordneter Knoten eines Knotens/ pfad zum knoten / child :: chid_name•

9.

Alle Nachkommen eines Knotens/ Pfad zum Knoten / Nachkomme :: node ()•

10.

Alle spezifischen Nachkommen eines Knotens/ Pfad zum Knoten / Nachkomme :: Nachkommen_Name•

11.

Parameter

Achse wählt aus

Vorfahr alle Ahnenknoten

Elternteil Elternknoten

Nachgeschwister Geschwister, die dem Knoten folgen

Vorgeschwister Geschwister vor dem Knoten

Kind unmittelbare Kinder

Nachkomme alle Nachkommen unabhängig von der Verschachtelungsebene

https://riptutorial.com/de/home 18

Page 23: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Bemerkungen

Diese Achsen können in Kombination mit anderen Funktionen verwendet werden, um unsere Anforderungen zu erfüllen.

Examples

Finde meine Vorfahren

XML

<GrandFather name="Bardock" gender="male" spouse="Gine"> <Dad name="Goku" gender="male" spouse="Chi Chi"> <Me name="Gohan" gender="male"/> <brother name="Goten" gender="male"/> </Dad> </GrandFather>

XPATH

//Me/ancestor::node()

AUSGABE

<GrandFather name="Bardock" gender="male" spouse="Gine"> <Dad name="Goku" gender="male" spouse="Chi Chi"> <Me name="Gohan" gender="male" /> <brother name="Goten" gender="male" /> </Dad> </GrandFather> <Dad name="Goku" gender="male" spouse="Chi Chi"> <Me name="Gohan" gender="male" /> <brother name="Goten" gender="male" /> </Dad>

Finde meine Eltern

XML

<GrandFather name="Bardock" gender="male" spouse="Gine"> <Dad name="Goku" gender="male" spouse="Chi Chi"> <Me name="Gohan" gender="male"/> <brother name="Goten" gender="male"/> </Dad> </GrandFather>

XPATH

//Me/ancestor::Dad

https://riptutorial.com/de/home 19

Page 24: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

oder

//Me/parent::node()

AUSGABE

<Dad name="Goku" gender="male" spouse="Chi Chi"> <Me name="Gohan" gender="male" /> <brother name="Goten" gender="male" /> </Dad>

Finde meinen Großvater

XML

<GrandFather name="Bardock" gender="male" spouse="Gine"> <Dad name="Goku" gender="male" spouse="Chi Chi"> <Me name="Gohan" gender="male" /> <brother name="Goten" gender="male" /> </Dad> </GrandFather>

XPATH

//Me/ancestor::GrandFather

oder

//Me/parent::node()/parent::node()

AUSGABE

<GrandFather name="Bardock" gender="male" spouse="Gine"> <Dad name="Goku" gender="male" spouse="Chi Chi"> <Me name="Gohan" gender="male" /> <brother name="Goten" gender="male" /> </Dad> </GrandFather>

Finde meinen Bruder

XML

<GrandFather name="Bardock" gender="male" spouse="Gine"> <Dad name="Goku" gender="male" spouse="Chi Chi"> <brother name="Goten" gender="male" /> <Me name="Gohan" gender="male" /> <brother name="Goten" gender="male" /> </Dad> </GrandFather>

https://riptutorial.com/de/home 20

Page 25: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

XPATH

//Me/following-sibling::brother

AUSGABE

<brother name="Goten" gender="male" />

Holen Sie sich alle Avatare vor Parashurama

XML

<Dashavatar> <Avatar name="Matsya"/> <Avatar name="Kurma"/> <Avatar name="Varaha"/> <Avatar name="Narasimha"/> <Avatar name="Vamana"/> <Avatar name="Balabhadra"/> <Avatar name="Parashurama"/> <Avatar name="Rama"/> <Avatar name="Krishna"/> <Avatar name="Kalki"/> </Dashavatar>

XPATH

//Avatar[@name='Parashurama']/preceding-sibling::node()

AUSGABE

<Avatar name="Matsya"/> <Avatar name="Kurma"/> <Avatar name="Varaha"/> <Avatar name="Narasimha"/> <Avatar name="Vamana"/> <Avatar name="Balabhadra"/>

Holen Sie sich alle Avatare nach Parashurama

XML

<Dashavatar> <Avatar name="Matsya"/> <Avatar name="Kurma"/> <Avatar name="Varaha"/> <Avatar name="Narasimha"/> <Avatar name="Vamana"/> <Avatar name="Balabhadra"/> <Avatar name="Parashurama"/> <Avatar name="Rama"/> <Avatar name="Krishna"/>

https://riptutorial.com/de/home 21

Page 26: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

<Avatar name="Kalki"/> </Dashavatar>

XPATH

//Avatar[@name='Parashurama']/following-sibling::node()

AUSGABE

<Avatar name="Rama" /> <Avatar name="Krishna" /> <Avatar name="Kalki" />

Holen Sie sich alle Avatare außer dem aktuellen (Parusharama)

XML

<Dashavatar> <Avatar name="Matsya"/> <Avatar name="Kurma"/> <Avatar name="Varaha"/> <Avatar name="Narasimha"/> <Avatar name="Vamana"/> <Avatar name="Balabhadra"/> <Avatar name="Parashurama"/> <Avatar name="Rama"/> <Avatar name="Krishna"/> <Avatar name="Kalki"/> </Dashavatar>

XPATH

//Avatar[@name='Parashurama']/following-sibling::Avatar | //Avatar[@name='Parashurama']/preceding-sibling::Avatar

AUSGABE

<Avatar name="Matsya" /> <Avatar name="Kurma" /> <Avatar name="Varaha" /> <Avatar name="Narasimha" /> <Avatar name="Vamana" /> <Avatar name="Balabhadra" /> <Avatar name="Rama" /> <Avatar name="Krishna" /> <Avatar name="Kalki" />

Holen Sie sich alle Details (Kindknoten) von House

XML

https://riptutorial.com/de/home 22

Page 27: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

<House> <Rooms>10</Rooms> <People>4</People> <TVs>4</TVs> <Floors>2</Floors> </House>

XPATH

/House/child::node()

AUSGABE

<Rooms>10</Rooms> <People>4</People> <TVs>4</TVs> <Floors>2</Floors>

Holen Sie sich alle Zimmer (unmittelbare Kinder namens Room) in House

XML

<House> <numRooms>4</numRooms> <Room name="living"/> <Room name="master bedroom"/> <Room name="kids' bedroom"/> <Room name="kitchen"/> </House>

XPATH

/House/child::Room

oder

/House/*[local-name()='Room']

AUSGABE

<Room name="living" /> <Room name="master bedroom" /> <Room name="kids' bedroom" /> <Room name="kitchen" />

Holen Sie sich alle Zimmer (unabhängig von der Position) in House

XML

<House>

https://riptutorial.com/de/home 23

Page 28: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

<numRooms>4</numRooms> <Floor number="1"> <Room name="living"/> <Room name="kitchen"/> </Floor> <Floor number="2"> <Room name="master bedroom"/> <Room name="kids' bedroom"/> </Floor> </House>

XPATH

/House/descendant::Room

AUSGABE

<Room name="living" /> <Room name="kitchen" /> <Room name="master bedroom" /> <Room name="kids' bedroom" />

Ruft Knoten relativ zum aktuellen Knoten ab online lesen: https://riptutorial.com/de/xpath/topic/6495/ruft-knoten-relativ-zum-aktuellen-knoten-ab

https://riptutorial.com/de/home 24

Page 29: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kapitel 10: Suchen Sie nach Knoten, die ein bestimmtes Attribut haben

Syntax

Innerhalb eines bestimmten Knotens/ Pfad zu / element [@attribute_name]•

1.

Überall im Dokument// * [@ attributname]•

2.

Innerhalb eines bestimmten Knotens mit einem bestimmten Wert/ Pfad zu / element [@ attributname = 'Suchwert']•/ Pfad zu / element [@ attributname = "Suchwert"]•

3.

Überall im Dokument mit einem gewissen Wert// * [@ attributname = 'Suchstring']•// * [@ attribute_name = "Suchstring"]•

4.

Parameter

Wähler Funktion

@attribute_name Es wählt den Attributwert für einen Knoten aus, sofern vorhanden

Bemerkungen

Mit [@attribute_name] können Knoten ausgewählt werden, deren Attribut unabhängig vom Wert ist.

Wir können alle Funktionen oder Kombinationen der Funktionen wie z. B. Beginnen mit und Kleinbuchstaben mit diesem Wahlschalter verwenden, um unsere Anforderungen zu erfüllen.

Examples

Suchen Sie nach Knoten mit einem bestimmten Attribut

XML

<Galaxy> <name>Milky Way</name> <CelestialObject name="Earth" type="planet"/> <CelestialObject name="Sun" type="star"/> </Galaxy>

XPATH

https://riptutorial.com/de/home 25

Page 30: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

/Galaxy/*[@name]

oder

//*[@name]

AUSGABE

<CelestialObject name="Earth" type="planet" /> <CelestialObject name="Sun" type="star" />

Suchen Sie nach Knoten mit einem bestimmten Attributwert

XML

<Galaxy> <name>Milky Way</name> <CelestialObject name="Earth" type="planet"/> <CelestialObject name="Sun" type="star"/> </Galaxy>

XPATH

/Galaxy/*[@name='Sun']

oder

//*[@name='Sun']

AUSGABE

<CelestialObject name="Sun" type="star" />

Suchen Sie nach Knoten, indem Sie den Wert eines Attributs mit einem Teilstring vergleichen

XML

<Galaxy> <name>Milky Way</name> <CelestialObject name="Earth" type="planet"/> <CelestialObject name="Sun" type="star"/> </Galaxy>

XPATH

/Galaxy/*[contains(@name,'Ear')]

https://riptutorial.com/de/home 26

Page 31: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

oder

//*[contains(@name,'Ear')]

Anstelle von einfachen Anführungszeichen können auch doppelte Anführungszeichen verwendet werden:

/Galaxy/*[contains(@name, "Ear")]

AUSGABE

<CelestialObject name="Earth" type="planet" />

Finden Sie Knoten durch Übereinstimmen der Teilzeichenfolge des Attributwerts (ohne Berücksichtigung von Groß- und Kleinschreibung)

XML

<Galaxy> <name>Milky Way</name> <CelestialObject name="Earth" type="planet"/> <CelestialObject name="Sun" type="star"/> </Galaxy>

XPATH

/Galaxy/*[contains(lower-case(@name),'ear')]

oder

//*[contains(lower-case(@name),'ear')]

oder mit dem String in Anführungszeichen:

//*[contains(lower-case(@name), "ear")]

AUSGABE

<CelestialObject name="Earth" type="planet" />

Suchen Sie nach Knoten, indem Sie einen Teilstring mit dem Anfang des Attributwerts angeben

XML

<Galaxy> <name>Milky Way</name>

https://riptutorial.com/de/home 27

Page 32: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

<CelestialObject name="Earth" type="planet"/> <CelestialObject name="Sun" type="star"/> </Galaxy>

XPATH

/Galaxy/*[starts-with(lower-case(@name),'ear')]

oder

//*[starts-with(lower-case(@name),'ear')]

AUSGABE

<CelestialObject name="Earth" type="planet" />

Suchen Sie nach Knoten, indem Sie einen Teilstring verwenden, der mit dem Ende des Attributwerts übereinstimmt

XML

<Galaxy> <name>Milky Way</name> <CelestialObject name="Earth" type="planet"/> <CelestialObject name="Sun" type="star"/> </Galaxy>

XPATH

/Galaxy/*[ends-with(lower-case(@type),'tar')]

oder

//*[ends-with(lower-case(@type),'tar')]

AUSGABE

<CelestialObject name="Sun" type="star" />

Suchen Sie nach Knoten, die ein bestimmtes Attribut haben online lesen: https://riptutorial.com/de/xpath/topic/3096/suchen-sie-nach-knoten--die-ein-bestimmtes-attribut-haben

https://riptutorial.com/de/home 28

Page 33: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kapitel 11: Wählen Sie Knoten aus, deren Namen einer Zeichenfolge entsprechen oder diese enthalten

Syntax

Innerhalb eines bestimmten Knotens:

{Pfad-zu-Elternteil} / name () = 'Suchstring']

1.

Überall im Dokument:

// * [name () = 'Suchstring']

2.

Parameter

Funktion Rückgabewert

Lokaler Name() Name des Knotens ohne Präfix

Bemerkungen

local-name () Ergebnis enthält kein Präfix (Suchname () XPATH-Funktion dafür)

Examples

Suchen Sie nach Knoten mit Namen als Licht, Gerät oder Sensor

XML

<Galaxy> <Light>sun</Light> <Device>satellite</Device> <Sensor>human</Sensor> <Name>Milky Way</Name> </Galaxy>

XPATH

/Galaxy/*[local-name()='Light' or local-name()='Device' or local-name()='Sensor']

oder

https://riptutorial.com/de/home 29

Page 34: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

//*[local-name()='Light' or local-name()='Device' or local-name()='Sensor']

AUSGABE

<Light>sun</Light> <Device>satellite</Device> <Sensor>human</Sensor>

Suchen Sie nach Knoten, deren Name Light enthält

XML

<Data> <BioLight> <name>Firefly</name> <model>Insect</model> </BioLight> <ArtificialLight> <name>Fire</name> <model>Natural element</model> <source>flint</source> </ArtificialLight> <SolarLight> <name>Sun</name> <model>Star</model> <source>helium</source> </SolarLight> </Data>

XPATH

/Data/*[contains(local-name(),"Light")]

oder

//*[contains(local-name(),"Light")]

AUSGABE

<BioLight> <name>Firefly</name> <model>Insect</model> </BioLight> <ArtificialLight> <name>Fire</name> <model>Natural element</model> <source>flint</source> </ArtificialLight> <SolarLight> <name>Sun</name> <model>Star</model> <source>helium</source> </SolarLight>

https://riptutorial.com/de/home 30

Page 35: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Suchen Sie nach Knoten, deren Name mit Stern beginnt

XML

<College> <FootBall> <Members>20</Members> <Coach>Archie Theron</Coach> <Name>Wild cats</Name> <StarFootballer>David Perry</StarFootballer> </FootBall> <Academics> <Members>100</Members> <Teacher>Tim Jose</Teacher> <Class>VII</Class> <StarPerformer>Lindsay Rowen</StarPerformer> </Academics> </College>

XPATH

/College/*/*[starts-with(local-name(),"Star")]

oder

//*[starts-with(local-name(),"Star")]

AUSGABE

<StarFootballer>David Perry</StarFootballer> <StarPerformer>Lindsay Rowen</StarPerformer>

Suchen Sie nach Knoten, deren Name mit Ball endet

XML

<College> <FootBall> <Members>20</Members> <Coach>Archie Theron</Coach> <Name>Wild cats</Name> <StarPlayer>David Perry</StarPlayer> </FootBall> <VolleyBall> <Members>24</Members> <Coach>Tim Jose</Coach> <Name>Avengers</Name> <StarPlayer>Lindsay Rowen</StarPlayer> </VolleyBall> <FoosBall> <Members>22</Members> <Coach>Rahul Mehra</Coach> <Name>Playerz</Name> <StarPlayer>Amanda Ren</StarPlayer>

https://riptutorial.com/de/home 31

Page 36: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

</FoosBall> </College>

XPATH

/College/*[ends-with(local-name(),"Ball")]

oder

//*[ends-with(local-name(),"Ball")]

AUSGABE

<FootBall> <Members>20</Members> <Coach>Archie Theron</Coach> <Name>Wild cats</Name> <StarPlayer>David Perry</StarPlayer> </FootBall> <VolleyBall> <Members>24</Members> <Coach>Tim Jose</Coach> <Name>Avengers</Name> <StarPlayer>Lindsay Rowen</StarPlayer> </VolleyBall> <FoosBall> <Members>22</Members> <Coach>Rahul Mehra</Coach> <Name>Playerz</Name> <StarPlayer>Amanda Ren</StarPlayer> </FoosBall>

Suche nach Knoten mit Namenslicht (Groß- und Kleinschreibung wird nicht berücksichtigt)

XML

<Galaxy> <Light>sun</Light> <Device>satellite</Device> <Sensor>human</Sensor> <Name>Milky Way</Name> </Galaxy>

XPATH

/Galaxy/*[lower-case(local-name())="light"]

oder

//*[lower-case(local-name())="light"]

https://riptutorial.com/de/home 32

Page 37: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

AUSGABE

<Light>sun</Light>

Wählen Sie Knoten aus, deren Namen einer Zeichenfolge entsprechen oder diese enthalten online lesen: https://riptutorial.com/de/xpath/topic/3095/wahlen-sie-knoten-aus--deren-namen-einer-zeichenfolge-entsprechen-oder-diese-enthalten

https://riptutorial.com/de/home 33

Page 38: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Kapitel 12: Wählen Sie Knoten basierend auf ihren untergeordneten Elementen aus

Examples

Wählen Sie Knoten basierend auf der untergeordneten Anzahl aus

Beispiel-XML

<Students> <Student> <Name> <First>Ashley</First> <Last>Smith</Last> </Name> <Grades> <Exam1>A</Exam1> <Exam2>B</Exam2> <Final>A</Final> </Grades> </Student> <Student> <Name> <First>Bill</First> <Last>Edwards</Last> </Name> <Grades> <Exam1>A</Exam1> </Grades> </Student> </Students>

XPath

Wählen Sie alle Schüler aus, die mindestens zwei Noten aufgenommen haben

//Student[count(./Grades/*) > 1]

Ausgabe

<Student> <Name> <First>Ashley</First> <Last>Smith</Last> </Name> <Grades> <Exam1>A</Exam1> <Exam2>B</Exam2> <Final>A</Final> </Grades> </Student>

https://riptutorial.com/de/home 34

Page 39: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Wählen Sie Knoten basierend auf einem bestimmten untergeordneten Knoten aus

Beispiel-XML

<Students> <Student> <Name> <First>Ashley</First> <Last>Smith</Last> </Name> <Grades> <Exam1>A</Exam1> <Exam2>B</Exam2> <Final>A</Final> </Grades> </Student> <Student> <Name> <First>Bill</First> <Last>Edwards</Last> </Name> <Grades> <Exam1>A</Exam1> </Grades> </Student> </Students>

XPath

Wählen Sie alle Schüler aus, für die eine Prüfung für Exam2 aufgezeichnet wurde

//Student[./Grades/Exam2]

oder

//Student[.//Exam2]

Ausgabe

<Student> <Name> <First>Ashley</First> <Last>Smith</Last> </Name> <Grades> <Exam1>A</Exam1> <Exam2>B</Exam2> <Final>A</Final> </Grades> </Student>

Wählen Sie Knoten basierend auf ihren untergeordneten Elementen aus online lesen: https://riptutorial.com/de/xpath/topic/6504/wahlen-sie-knoten-basierend-auf-ihren-

https://riptutorial.com/de/home 35

Page 41: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

Credits

S. No

Kapitel Contributors

1Erste Schritte mit xpath

Community, hielsnoppe, kjhughes, Vinay, Wolfgang Schindler

2Elemente suchen, die bestimmte Attribute enthalten

Keith Hall

3Elemente suchen, die bestimmten Text enthalten

Keith Hall

4Holen Sie sich die Anzahl der Knoten

suchitra nair

5 Namensräume 4444, Keith Hall

6Ortspfade und Achsen

nwellnhof

7Prüfen Sie, ob der Text eines Knotens leer ist

suchitra nair

8Prüfen Sie, ob ein Knoten vorhanden ist

suchitra nair

9Ruft Knoten relativ zum aktuellen Knoten ab

suchitra nair

10

Suchen Sie nach Knoten, die ein bestimmtes Attribut haben

Keith Hall, miken32, suchitra nair

11

Wählen Sie Knoten aus, deren Namen einer Zeichenfolge entsprechen oder diese enthalten

Dimitre Novatchev, suchitra nair

Wählen Sie Knoten 12 Matthew

https://riptutorial.com/de/home 37

Page 42: xpath - riptutorial.com · from: xpath It is an unofficial and free xpath ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which

basierend auf ihren untergeordneten Elementen aus

https://riptutorial.com/de/home 38