Hallo,
Danke mal - werde versuchen ob ich durch diesen Ansatz weiterkomme.
Andere Lösungen sind aber auch willkommen.
Kurz zur Problematik:
Ich habe ein Element ohne Attributwerte.
Dieses Element kann an unterschiedlichen Stellen und unterschiedlich oft im Baum vorkommen.
Das Kindelement dieses Elements bzw. das Kindlement des Kindelements dieses Elements hat eine eindeutige ID als Attribut.
Aus Gründen der Verlinkung benötigt nun dieses Element nun eine eindeutige ID.
Dies habe ich über die Funktion position() erreicht.
An einer anderen Stelle des Baumes gibt es nun ein Element - ich nenne es jetzt mal "Linkelement", welches diese eindeutige ID benötigt. Im Linkelement ist die Attribut-ID des Kindelements bzw. des Kindelements des Kindelements bekannt.
Wie schaffe ich es nun diese (Positions-)-ID an das "Linkelement" zu übergeben?
In dem Fall ist position() die schlechtere Wahl, vor allem weil du darauf nicht wirklich zugreifen kannst.
generate-id()(link:http://de.selfhtml.org/xml/darstellung/xpathfunktionen.htm#generate_id]) ist hier die geignetere Möglichkeit, da du dadurch eine dokumentweit eindeutige ID bekommst (und auch wenn du mehrmals diese Funktion aufrufst: ein bestimmter Knoten erhält immer dieselbe ID zugewiesen).
Zudem kannst du die Funktion von jeder Stelle auf ausrufen:
z.B: value-of select="generate-id(vaterelement[element[@id = 1]])"
Aber es wäre einfacher, wenn du einen Auszug aus deinem XML und XSL zeigen würdest.
Grüße
Thomas