Attribut in vorheriger Node vergleichen
Felix Hoesch
- xsl
Hallo zusammen,
kann mir jemand ein Beispiel angeben, wie ich mit XSL das jeweils gleiche Attribut in zwei aufeinanderfolgenden Nodes vergleichen kann. Denn wenn es zwei mal gleich ist, will ich es nur einmal ausgeben und kann so eine Liste mit teilweise redundanten Einträgen schöner darstellen.
Vielen Dank für Eure Hilfe
Felix
Hallo,
kann mir jemand ein Beispiel angeben, wie ich mit XSL das jeweils gleiche Attribut in zwei aufeinanderfolgenden Nodes vergleichen kann.
-------- xml ---------
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<data>
<element attribut="apfel"></element>
<element attribut="birne"></element>
<element attribut="banane"></element>
<element attribut="erdbeere"></element>
<element attribut="apfel"></element>
<element attribut="apfel"></element>
<element attribut="melone"></element>
<element attribut="pflaume"></element>
<element attribut="pflaume"></element>
</data>
------------- xslt -----
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/data">
<html><head><title>Test</title></head>
<body>
<xsl:apply-templates select="element" />
</body>
</html>
</xsl:template>
<xsl:template match="element">
xsl:choose
<xsl:when test="@attribut = following-sibling::element[1]/@attribut">
<xsl:value-of select="@attribut" /><strong>(Duplikat existiert)</strong><br />
</xsl:when>
<xsl:when test="@attribut = preceding-sibling::element[1]/@attribut"></xsl:when>
xsl:otherwise
<xsl:value-of select="@attribut" /><br />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
------------------ Ausgabe -------
apfel
birne
banane
erdbeere
apfel(Duplikat existiert)
melone
pflaume(Duplikat existiert)
Grüße
Thomas