Hi,
Problem eingekreist:
<xsl:variable name="previous"><xsl:value-of select="translate(substring(preceding-sibling::catter[1]/@names,1,1),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')" /></xsl:variable>
preceding-sibling greift auf die Reihenfolge der Elemente im XML-File zu, nicht auf die sortierte Reihenfolge.
Und die Reihenfolge ist (nicht wie im Beispiel), sondern so, daß zuerst alle Elemente, deren names-Attribut mit Großbuchstaben beginnt, sortiert nach diesem Großbuchstaben, vorkommen und dann alle Elemente, deren names-Attribut mit Kleinbuchstaben beginnt, sortiert nach diesem Kleinbuchstaben.
Also
<catters>
<catter names="A_aaaa" />
<catter names="A_bbbb" />
<catter names="A_cccc" />
<catter names="B_dddd" />
<catter names="B_eeee" />
<catter names="C_gggg" />
<catter names="C_hhhh" />
<catter names="F_mmmm" />
<catter names="b_ffff" />
<catter names="c_iiii" />
<catter names="d_jjjj" />
<catter names="d_kkkk" />
<catter names="f_llll" />
<catter names="f_nnnn" />
</catters>
Da muß ich eine kleine Änderung in dem Programm vornehmen, daß das XML erzeugt - damit dort case-insensitiv sortiert wird.
Oder im XSL probieren, mit Position()-1 auf den Vorgänger zuzugreifen, statt mit preceding-sibling
cu,
Andreas
MudGuard? Siehe http://www.mud-guard.de/