Thomas J.S.: XPath-Beispiel für descendant-or-self und descendant

Beitrag lesen

Hallo,

Ich beschäftige mich gerade mit Xpath und mir ist der Unterschied zwischen den Achsenausdrücken :
descendant-or-self und descendant nicht ganz klar.
Könnte mir jemand an einem konkreten, kurzen Beispiel erklären, worin sich die Achsenausdrücke

//x
/descendant::x
unterscheiden ?
Bei meinen bisherigen Tests führen beide Ausdrücke zum selben Ergebnis.

In dienem Test gibt es auch keinen Unterschied, weil du vom Wurzelknoten ausgehst.
Der Unterschied wäre: descendant selektiert die Kinder des Ausgangknotens und deren Kinder und deren Kinder usw. descendant-or-self macht das selbe mit dem Unterscied, dass es als ersten den Ausgangknoten selbst nimmt.

Man könnte auch so eine Selektion haben:

a/b/c/descendant::c  = würde nur die Kindelemente "c" usw. unter a/b/c finden   a/b/c/descendant-or-self::c würde a/b/c selbst und die Kinder usw. treffen.

Aie Abkürzung // entsprich technisch descendant-or-self, also könnte man statt a/b/c/descendant-or-self::c einfach a/b/c//c schreiben.

Vielleicht mit Bildern:

http://de.selfhtml.org/xml/darstellung/anzeige/descendant.htm

http://de.selfhtml.org/xml/darstellung/anzeige/descendant_or_self.htm

Grüße
Thomas