kewl, muss ich gleich mal ausprobieren :) THX!
Hallo g-punkt (Hast du zuviel "Helden wie wir" gelesen oder?),
Eine einfache Lösung für kleinere Dateien ist:
XML-Datei:
<?xml version="1.0"?>
<?xml-stylesheet href="doppelt.xsl" type="text/xsl"?>
<lifeforms>
<lifeform>
<id>jkfan-3245</id>
<class>plant</class>
<more/>
</lifeform>
<lifeform>
<id>34424j_knnanfn</id>
<class>animal</class>
<more/>
</lifeform>
<lifeform>
<id>tegvx-365</id>
<class>animal</class>
<more/>
</lifeform>
<lifeform>
<id>jkfan-3245</id>
<class>plant</class>
<more/>
</lifeform>
</lifeforms>
XSLT
gibt Liste von Inhalten der class-Elemente aus, wobei Doppelte eliminiert werden
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
>
<xsl:variable name="classesOhneDoppelte" select="//class[not(.=following::class)]"/>
<xsl:template match="/">
<html>
<head>
<title>doppelte Elementinhalte eliminieren</title>
</head>
<body>
<xsl:for-each select="$classesOhneDoppelte">
<p>
<xsl:value-of select="."/>
</p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Du liest alle Inhalte von class-Elementen in eine Variable ein, wenn es nicht ein weiteres class-Element (auf der following-Achse) gibt, das denwelben Inhalt hat.
Etwas klarer wird das, wenn Du es folgendermaßen schreibst:
<xsl:variable name="classesOhneDoppelte" select="//class[not(./text()=following::class/text())]"/>
Gruß
Franz