fjh: position()

Beitrag lesen

Hallo,

Ich habe in einem Buch einen Widerspruch zu SELFHTML gefunden. Im Buch von Steve Holzner (S.392) steht, position() bezöge sich auf den Kontextknoten und in SELFHTML steht, es bezöge sich auf den aktuellen Knoten.

Und jetzt möchtest Du wissen, was formal richtig ist oder?

Formal richtig ist: position() bezieht sich auf die Position des Kontextknoten. Den aktuellen Knoten liefert Dir current().

Beide sind zwar oft dasselbe - aber nicht immer.

Ja, daher ist die Unterscheidung im Regelfall auch Haarspalterei, aber wenn man genau sein möchte und streng auf Terminologie achtet, dann sollte man Kontextknoten verwenden statt aktueller Knoten.

Im Grunde liefern "." und current() das gleiche Ergebnis. Ausnahme: bei Verwendung in Prädikaten. Denn der aktuelle Knoten wechselt nicht, wenn innerhalb eines Prädikats ein XPath-Ausdruck ausgewertet wird. Der Kontextknoten aber schon.

Mir wäre es eine große Erleichterung, wenn ich mit Suchmustern bestimmte Knoten anfahren und anschließend diese Position vergleichen könnte (die Elemente liegen selbstverständlich auf gleicher Ebene, ansonsten macht es wohl kaum Sinn).

Äh, und was ist nun Deine Frage?

Gruß
Franz