Guten Morgen! Als XSLT Anfänger stehe ich bereits vor einem richtige Problem! Und zwar will ich das folgende XML Doc per XSL alphanumerisch nach "spediteur", "bestellnr", "lfs_transportnr", und anschliessend nach dem Datum sortieren. Ich habe bereits einiges ausprobiert, konnte jedoch nichts bewirken. Habt Ihr einen Rat für mich!? Die Problematische Sektion im Stylesheet habe ich rot hervorgehoben! Im Moment funtkioniert nicht einmal diese Sortierung (nicht alphanumerisch)!
Meine XML Grundlage:
Mein Stylesheet sieht wie folgt aus:
Meine XML Grundlage:
Code:
<?xml version="1.0" encoding="iso-8859-1" ?>
- <selection>
- <lfs id="0">
<spediteur>Test GmbH</spediteur>
<kundenauftragsnr />
<kilometer />
<bestellnr>KBF07002A</bestellnr>
<datum>2007-10-25 00:00:00</datum>
<lfsnr>1936-4 Okt</lfsnr>
<ziel>Ort A</ziel>
<lfsStatus>LFS</lfsStatus>
<bemerkung>frei Waggon</bemerkung>
<lfssubnr />
<werksmassFM />
<werksmassRM />
<werksmassLUT />
<werksmassATR />
<lfsGuid>22abcca76fffb24ca8a8596d154d2be3</lfsGuid>
<letzteAenderung>2007-10-30 11:45:11</letzteAenderung>
<lfs_emenge>Rm</lfs_emenge>
<lfs_refnr>1936-4 Okt</lfs_refnr>
<lfs_transportnr>1936-4 Okt</lfs_transportnr>
<vguid_ref />
- <lfs_sub id="0">
<lfss_guid>CA22A2F0543C462695B8FCD23F70521B</lfss_guid>
<lfsGuid_ref>22abcca76fffb24ca8a8596d154d2be3</lfsGuid_ref>
<pname>401</pname>
<pguid_ref>5121426c0dfd544bbab5d1431c1a074a</pguid_ref>
<lmenge>67.000000</lmenge>
<restmenge>0.000000</restmenge>
<lfs_sub_exported />
<lfs_sub_rmfac>1.000000</lfs_sub_rmfac>
<wmFM />
<wmEinhRm>1</wmEinhRm>
<wmRM />
<wmLUT />
<wmATR />
</lfs_sub>
- <lfs_sub id="1">
<lfss_guid>E0DE8E69143A437A82B31082EC1E8800</lfss_guid>
<lfsGuid_ref>22abcca76fffb24ca8a8596d154d2be3</lfsGuid_ref>
<pname>402</pname>
<pguid_ref>2fc8af2da088784f9fb6307e4f86fed7</pguid_ref>
<lmenge>11.000000</lmenge>
<restmenge>0.000000</restmenge>
<lfs_sub_exported />
<lfs_sub_rmfac>1.000000</lfs_sub_rmfac>
<wmFM />
<wmEinhRm>1</wmEinhRm>
<wmRM />
<wmLUT />
<wmATR />
</lfs_sub>
</lfs>
- <lfs id="1">
<spediteur>Test GmbH</spediteur>
<kundenauftragsnr />
<kilometer />
<bestellnr>KBF07007A</bestellnr>
<datum>2008-05-28 00:00:00</datum>
<lfsnr>Bohn00647</lfsnr>
<ziel>Ort C</ziel>
<waggonnr />
<ankunftsdatum />
<lfsStatus>LFS</lfsStatus>
<bemerkung>Frei Werk</bemerkung>
<lfssubnr />
<werksmassFM />
<werksmassRM />
<werksmassLUT />
<werksmassATR />
<lfsGuid>231b364035097a46886c3f789908fe98</lfsGuid>
<letzteAenderung>2008-06-03 12:32:06</letzteAenderung>
<lfs_emenge>Rm</lfs_emenge>
<lfs_refnr>29266</lfs_refnr>
<lfs_transportnr>29266</lfs_transportnr>
<vguid_ref />
- <lfs_sub id="0">
<lfss_guid>8D2AB84AEEB14F67843FD00A4A7E4224</lfss_guid>
<lfsGuid_ref>231b364035097a46886c3f789908fe98</lfsGuid_ref>
<pname>200</pname>
<pguid_ref>25211787e9847b4184547289c7e77965</pguid_ref>
<lmenge>19.820000</lmenge>
<restmenge>0.000000</restmenge>
<lfs_sub_exported />
<lfs_sub_rmfac>1.000000</lfs_sub_rmfac>
<wmFM />
<wmEinhRm />
<wmRM />
<wmLUT />
<wmATR />
</lfs_sub>
- <lfs_sub id="1">
<lfss_guid>7623E48440DA4995910096E1E0A90C64</lfss_guid>
<lfsGuid_ref>231b364035097a46886c3f789908fe98</lfsGuid_ref>
<pname>129</pname>
<pguid_ref>5a2ac844f00a5b4ca9d698894de33727</pguid_ref>
<lmenge>33.000000</lmenge>
<restmenge>0.000000</restmenge>
<lfs_sub_exported />
<lfs_sub_rmfac>1.000000</lfs_sub_rmfac>
<wmFM />
<wmEinhRm />
<wmRM />
<wmLUT />
<wmATR />
</lfs_sub>
</lfs>
</selection>
Code:
<?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" indent="yes" encoding="iso-8859-1"/>
<xsl:decimal-format decimal-separator="," grouping-separator="."/>
<xsl:template match="/selection">
<html>
<head>
</head>
<table style="margin-bottom: 0.2cm; width: 25.6cm; table-layout: fixed; border-color: black; border-width: 1px; border-style: solid; font-size: 10pt;">
<thead>
<tr>
<th class="border1" style="width: 3.5cm;"><center>Spediteur</center></th>
<th class="border1" style="width: 2.8cm;"><center>Kaufnr</center></th>
<th class="border1" style="width: 3.3cm;"><center>LNr</center></th>
<th class="border1" style="width: 4cm;"><center>Lieferreferenz</center></th>
<th class="border1" style="width: 3cm;"><center>TransportNr</center></th>
<th class="border1" style="width: 2.0cm;"><center>Datum</center></th>
<th class="border1" style="width: 3.0cm;"><center>Empfänger</center></th>
<th class="border1" style="width: 2.0cm;"><center>WM</center></th>
</tr>
</thead>
<tfoot/>
<tbody>
<xsl:for-each select="spediteur">
<xsl:for-each select=" lfs">
<xsl:sort data-type="text" select="row[1]/spediteur"/>
<xsl:sort data-type="text" select="row[1]/lfsnr"/>
<tr>
<td rowspan="{@rowspan}" class="border1" style="background-color: #DDDDDD; vertical-align=middle;"><xsl:value-of select="row[1]/@spediteur"/></td>
<td rowspan="{@rowspan}" class="border1" style="background-color: #DDDDDD; vertical-align=middle;"><xsl:value-of select="row[1]/@bestellnr"/></td>
<td rowspan="{@rowspan}" class="border1" style="background-color: #DDDDDD; vertical-align=middle;"><xsl:value-of select="row[1]/@lfsnr"/></td>
<td rowspan="{@rowspan}" class="border1" style="background-color: #DDDDDD; vertical-align=middle;"><xsl:value-of select="row[1]/@lfs_refnr"/></td>
<td rowspan="{@rowspan}" class="border1" style="background-color: #DDDDDD; vertical-align=middle;"><xsl:value-of select="row[1]/@lfs_transportnr"/></td>
<td rowspan="{@rowspan}" class="border1" style="background-color: #DDDDDD; vertical-align=middle;"><xsl:value-of select="datum"/></td>
<td rowspan="{@rowspan}" class="border1" style="background-color: #DDDDDD; vertical-align=middle;"><xsl:value-of select="row[1]/@ziel"/></td>
<td rowspan="{@rowspan}" class="border1" style="background-color: #DDDDDD; vertical-align=middle;"><xsl:if test="wmmenge > 0"><xsl:value-of select="format-number(wmmenge, '#.##0,00')"/> <xsl:value-of select="wmunit"/></xsl:if></td>
</tr>
<xsl:for-each select="row">
<tr display="none">
</tr>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</tbody>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Comment