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
Hallo Thomas,
Vielen Dank für dein Beispiel und den Link.
Es hat mir sehr geholfen !
Es geht also um den Kontextknoten :
Wenn der Kontextknoten den gleichen Namen hat wie die Nachfolgerknoten ,dann kommen bei diesen beiden Pfadausdrücken unterschiedliche Ergebnisse raus.
Hat der Kontextknoten eine andere Bezeichnung als seine Nachfolgerknoten, dann sind die Ergebnisse von descendant und descendant-or-self immer gleich.
Ist das so richtig ?
Grüße,
Ralf