XSLT-Problem (parent/pfad/position)

scwo

Grünschnabel
Hallo,

ich komme hier nicht weiter:

ich möchte innerhalb eines templates folgende Werte ermitteln:
(die Elemente kann ich über absolute Pfade ermitteln)

1) Liefere mir von einem Element mit einem bestimmten Attributwert (z.b. id=1) den Positionswert [position()] des Vaterelements.

2. Liefere mir von einem Element mit einem bestimmten Attributwert (z.b. id=1) den Positionswert [position()] des Vaterelements des Vaterelements.

Meine bisherigen Versuchen scheiterten alle:
z.B.: value-of select = [parent][Pfad des Elements mit Attribut] [position()]

Wie kann ich so etwas (Punkt 1 und 2) in XSLT schreiben?

Danke mal und Grüsse

Wolfgang
 
Hi.

Die Funktion position liefert die Position im Kontext abhängig von dem aktuellen ausgewerteten Ausdruck. Wenn du daher den Positionswerts des Vaterelements auswerten würdest, wäre der immer 1. Denn ein Knoten kann ja nur ein Vaterelement besitzen. position() ist also nicht das was du willst.

Du willst wohl eher wissen welche Position der Vaterknoten des aktuellen Knotens in der Liste aller Knoten des Großvaterelementes hat:
XML:
<xsl:select value-of="count(../preceding-sibling::*) + 1"/>

Gruß
 
Zuletzt bearbeitet von einem Moderator:
hallo

danke für die antwort.

ich habe es jetzt über die generate-id()-funktion lösen können.

Gruss

Wolfgang
 
Zurück