Hallo Forum,
Ich möchte gerne über bestimmte Elemente eines Dokumentes iterieren und bei jedem Iterationsschritt Kindelemente des aktuellen Elementes mit den Kindelelementen des vorhergehenden Iterationsschrittes vergleichen.
previous-sibling wird nicht funktionieren, da die gesuchten Elemente nicht aufeinanderfolgend im Dokument vorliegen.
Ich mach mal ein Beispiel:
xml:
<root>
<aaa>
<name>
<nachname>doe</nachname>
<vorname>john</vorname>
</name>
<bbb>
<name>
<nachname>miles</nachname>
<vorname>richard</vorname>
</name>
</bbb>
</aaa>
<ccc>
<ddd>
<eee>
<name>
<nachname>doe</nachname>
<vorname>tim</vorname>
</name>
</eee>
</ddd>
</ccc>
</root>
jetzt möchte ich gerne alle Namen haben und darüber iterieren was ja mit einem <xsl:for-each select="//name"> schnell gemacht ist.
<xsl:for-each select="//name">
...
</xsl:for-each>
Das eigentlich Problem ergibt sich erst jetzt. Im Zieldokument sollen gleiche nachnamen nur einmal aussgeben werden.
also:
doe,
john
tim
miles,
richard
Hierfür müsste ich ja wissen, welchen wert <nachname> im vorherigen Schleifendurchlauf hatte um ihn mit dem aktuellen zu vergleichen.
Hat jemand ne Ahnung wie man sowas anstellen kann? Etliche versuche mit xsl:variable oder xsl:param sind gescheitert :(
Besten Dank
Günter