Hallo,
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. ;-)
??? - habe ich Dir doch schon geschrieben, dass ich im oberen Fall den match nur auf "litlist" habe.
Warum nicht XSLT 2 ? - weils noch nicht Recommendation ist?
Ich habe mir da ehrlichgesagt noch keinen großen Kopf gemacht deswegen.
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>
Das ist schon klar ;-) Das dürfte aber keinen Unterschied machen ob man hier match auf "litlist" macht und dafür für for-each "ul/li" wählt oder "litlist/ul" und for-each "li".
Der Rest dann als Antwort auf deine Mail. ;-)
Bin schon gespannt ;-)
Viele Grüße
Michael