Björn Höhrmann: xsl:sort

Beitrag lesen

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>
[...]

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.

Guck dir nochmal an, was du eigentlich sortierst, alle name-Kinder eines eintrag-Elements. Jedes eintrag-Element hat aber nur ein name-Kind, von daher lässt sich da nicht viel sortieren.