Hallo allerseits,
ich kämpfe seit gestern mit einem dicken Kopfknoten und hoffe, dass ihr gute Lösungen oder Ideen habt! Ich habe folgende Ausgangssituation:
<list>
<old>
<id>1</id>
<id>2</id>
<id>3</id>
<id>4</id>
</old>
<new>
<id>2</id>
<id>3</id>
<id>4</id>
<id>5</id>
</new>
</list>
Was ich nun haben will: Eine Liste, die alle Elemente aus "old" und "new" vereint (also sowohl 1 und 5) als auch doppelte Einträge filtert (also nicht 2-4 doppelt):
<list>
<id>1</id>
<id>2</id>
<id>3</id>
<id>4</id>
<id>5</id>
</list>
Das funktioniert mit folgendem Code schon ganz gut:
<xsl:template>
<list>
<xsl:for-each select="list/old/id">
<id>
<xsl:value-of select="id"/>
</id>
</xsl:for-each>
<xsl:for-each select="list/new/id">
<id>
<xsl:value-of select="id"/>
</id>
</xsl:for-each>
</list>
</xsl:template>
Und in einem zweiten Schritt die Liste (1, 2, 2, 3, 3, 4, 4, 5) filtern mit: <xsl:for-each select="id[not(.=following::id)]">
Geht das auch in einem Schritt? Z.B. über Variablen? Da bin ich aber gänzlich ratlos, wie man sowas anstellen könnte…
Schonmal besten Dank für die Hinweise!
LG Janine