Nummerrierung nach Sortierung
Peter
- xsl
1 Thomas Meinike0 Peter
Hallo,
kann mir jemand sagen wie ich eine sortierte ausgabe nummerieren kann?
Beim obersten "Datensatz" soll eine "1" stehen bein 2. eine "2" usw...
beispiel:
<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="number" order="descending"/>
<tr>
<td><xsl:value-of select="@name"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
-------------------
ich kann zwar ein "<xsl:number formtat="1"/>" einbauen. aber dies hat mit meiner sortierung nichts mehr zu tun. den dieser nummer wird vor der sortierung eingefügt.
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
Cool, danke hat geklappt.