Thorsten: Unique mit mehreren Attributen

Beitrag lesen

Hallo zusammen,

ich versuche aus einer XML Datei UNIQUE Werte via XSLT auszulesen. Hier ein Beispiel:

  
<data>  
 <xmlWebControl ty="t1" st="win">a1</xmlWebControl>  
 <xmlWebControl ty="o1" st="win">b1</xmlWebControl>  
 <xmlWebControl ty="o1" st="win">c1</xmlWebControl>  
 <xmlWebControl ty="n1" st="test">d1</xmlWebControl>  
 <xmlWebControl ty="n1" st="win">e1</xmlWebControl>  
</data>

Die Ausgabe sollte hier folgendermaßen aussehen:

  
<data>  
 <xWC ty="t1" st="win">a1</xmlWebControl>  
 <xWC ty="o1" st="win">b1</xmlWebControl>  
 <xWC ty="n1" st="test">d1</xmlWebControl>  
 <xWC ty="n1" st="win">e1</xmlWebControl>  
</data>

Für die Selektion sollen nur die zwei Attribute maßgebend sein. Ich habe das Web schon hoch und runter gesucht, leider ohne Erfolg.

Eine Lösung, die bei mir leider nicht funktioniert habe ich gefunden:

  
<xsl:key name="s" match="xWC" use="concat(@ty,':',@st)"/>  
  
<xsl:for-each select="xWC[generate-id()=generate-id(key('s',concat(@ty,':',@st))[1])]">  
 <xsl:sort select="."/>  
 <xsl:value-of select="@ty"/>  
 <xsl:value-of select="@st"/>  
</xsl:for-each>  

Für einen Schubs in die richtige Richtung wäre ich dankbar.

Gruß

Thorsten