Thomas Meinike: Nummerrierung nach Sortierung

Beitrag lesen

Hallo,

kann mir jemand sagen wie ich eine sortierte ausgabe nummerieren kann?
Beim obersten "Datensatz" soll eine "1" stehen bein 2. eine "2" usw...

Mal angenommen, das XML-Dokument sieht so aus:

  
<?xml version="1.0" encoding="ISO-8859-1"?>  
<xxx>  
<test name="Christian"/>  
<test name="Andreas"/>  
<test name="Gernot"/>  
<test name="Thomas"/>  
</xxx>

Mit einem Attribut "name" verbinde ich einen alphanumerischen Wert, aber keinen Zahlenwert. Deshalb scheint mir statt <xsl:sort select="@name" data-type="number" order="descending"/> eher <xsl:sort select="@name" data-type="text" order="descending"/> angebracht. Mittels position() erhalte ich ueber dieses Stylesheet

  
<?xml version="1.0" encoding="ISO-8859-1"?>  
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">  
 <xsl:output method="html" encoding="ISO-8859-1"/>  
 <xsl:template match="xxx">  
  <table>  
  <xsl:for-each select="test">  
  <xsl:sort select="@name" data-type="text" order="descending"/>  
   <tr>  
    <td><xsl:value-of select="position()"/></td>  
    <td><xsl:value-of select="@name"/></td>  
   </tr>  
  </xsl:for-each>  
  </table>  
 </xsl:template>  
</xsl:stylesheet>

als Ergebnis in absteigend sortierter Folge:

  
<table>  
 <tr><td>1</td><td>Thomas</td>  
 </tr>  
 <tr><td>2</td><td>Gernot</td>  
 </tr>  
 <tr><td>3</td><td>Christian</td>  
 </tr>  
 <tr><td>4</td><td>Andreas</td>  
 </tr>  
</table>

MfG, Thomas