Janine S.: Variablen und Schleifen - Kopfknotenalarm!

Beitrag lesen

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

akzeptierte Antworten