hh: Alle Attribute anzeigen, aber keine Duplikate

Hallo,

ich fuehle mich schon wieder als Depp und scheitere an einer eigentlich scheinbar leichter Aufgabe.

Ich möchte in ein Listenfeld alle verfügbaren Werte eines Attributes ausgeben, ohne dass sich natuerlich doppelt bzw. mehrfach vorhandene Werte wiederholen.

XML ungefähr so:

<root>
<element ausgabe="wert1">something</element>
<element ausgabe="wert2">something</element>
<element ausgabe="wert2">something</element>
<element ausgabe="wert1">something</element>
<element ausgabe="wert8">something</element>
<element ausgabe="wert10">something</element>
<root>

So jetzt muesste ich irgendwie eine xsl:for-each stricken, so dass mir

wert1
wert2
wert8
wert10

ausgibt. eine

<xsl:for-each select="/*/*/@ausgabe">
<xsl:value-of select="."/>
</xsl:for-each>

gibt mir ja nun alle aus, da ja auch alle angesprochen werden. Habe etwas mit preceding-sibling gelesen, aber weiss nicht, ob ich dass hier brauche.

Gruß, Holger

  1. Hallo,

    Ich möchte in ein Listenfeld alle verfügbaren Werte eines Attributes ausgeben, ohne dass sich natuerlich doppelt bzw. mehrfach vorhandene Werte wiederholen.
    So jetzt muesste ich irgendwie eine xsl:for-each stricken, so dass mir

    wert1
    wert2
    wert8
    wert10

    ausgibt.

    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:key name="att" match="element" use="@ausgabe" />
    <xsl:template match="/">
    <html><head></head><body>

    <xsl:apply-templates />

    </body></html>

    </xsl:template>

    <xsl:template match="root">
    <xsl:for-each select="element[generate-id(.) = generate-id(key('att', @ausgabe)[1])]">
     <xsl:value-of select="@ausgabe" /><br />
    </xsl:for-each>
    </xsl:template>

    </xsl:stylesheet>

    Grüße
    Thomas

    1. Hallo Thomas,

      wei immer genial einfach und ...

      .. es funktioniert ;-) Vielen Dank dir wieder einmal. Werde mich mal mit xsl:key befassen muessen.

      Gruß,

      Holger