Hallo!
Mhhhh, sehe ich den Wald vor lauter XSL-Bäumen nicht mehr?
Folgendes XML-Dokument soll sortiert werden.
<liste>
<eintrag>
<name>Sandra C.</name>
</eintrag>
<eintrag>
<name>Alex</name>
</eintrag>
<eintrag>
<name>Michael Z.</name>
</eintrag>
<eintrag>
<name>Ernst</name>
</eintrag>
<eintrag>
<name>Dominic</name>
</eintrag>
<eintrag>
<name>Evelyne</name>
</eintrag>
<eintrag>
<name>Joukje</name>
</eintrag>
<eintrag>
<name>Therese</name>
</eintrag>
<eintrag>
<name>Lars</name>
</eintrag>
</liste>
Dazu habe ich dieses XSL-Template geschrieben.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/liste">
<html>
<body>
<table border="1">
<xsl:apply-templates select="eintrag"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="eintrag">
<xsl:for-each select="name">
xsl:sort/
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
xsl:sort/ sollte den aktuelle Kontextknoten 'name', für die Sortierung auswählen. Mir wird die Reihenfolge im XML-Dokument ausgegeben. Ich habe es im select-Attribut schon mit dem absoluten Pfad versucht, was auch nicht wollte.
Mit dem folgenen XSL-Template bekomme ich es richtig sortiert, also aussteigent.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/liste">
<html>
<body>
<table border="1">
<xsl:apply-templates select="eintrag/name">
xsl:sort/
</xsl:apply-templates>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="name">
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
MfG, André Laugks
L-Andre @ gmx.de