Thomas J.S.: XSLT - Sortieren und doppelte Einträge unterdrücken

Beitrag lesen

Hallo,

Für so einem Fall steht meine Mailadresse in den Postings ;-)

...you've got mail...
...da hast Du Dir was angetan ;-)

Dein Problem, jetzt unabhängig davon das du XSLT 2 verwendest (warum eigentlich?) war das erwähnte:
---------------
"ul/li[not(. = preceding-sibling::li)]"

Das deutet aber darauf hin, dass du nicht im Template mit match="litlist/ul" bist, oder dass dein XML etwas anders aussieht. ;-)
----------------

Da reicht es eine kleine Anpassung im Template:
(key bleibt dasselbe)

<xsl:template match="litlist">
 <ul>
  <xsl:for-each select="ul/li[generate-id(.) = generate-id(key('likey', .)[1])]">
   <xsl:sort />
    <li>
     <xsl:attribute name="class">
      <xsl:if test="position() mod 2 = 0">xsl:textlitli</xsl:text></xsl:if>
      <xsl:if test="position() mod 2 = 1">xsl:textlitli2</xsl:text></xsl:if>
     </xsl:attribute>
     <xsl:call-template name="ankersetzen"></xsl:call-template>
     <xsl:value-of select="." />
    </li>
   </xsl:for-each>
  </ul>
</xsl:template>

Der Rest dann als Antwort auf deine Mail. ;-)

Grüße
Thomas