Avatar billede netphreak Nybegynder
14. juni 2006 - 09:16

Problemer med at sortere data fra xml via <xsl:sort>

Jeg forsøger at sortere en række data i <row><elements><item>..

Men jeg kan ikke helt regne ud, hvorfor sorteringen ikke fungerer :/


Hvad er der galt med følgende eksempel:


XML:
<talefod>
    <!-- All intern Fionia Bank data is located in <fioniabank>-tags -->
    <fioniabank>
        <details title="???"> <!-- no title="xxx" means no header -->
            <detailitems>
                <item type="text" title="Intern kreditkode:">
                    123412345                   
                </item>
                <item type="text" title="RKI kode:">
                    1234512345
                </item>
            </detailitems>
        </details>
    </fioniabank>
    <!-- end -->
    <selectcustomers>
            <headers>
            <item title="Dato"/>
            <item title="CPR"/>
            <item title="Kundenavn"/>
            <item title="Event"/>
            <item title="Status"/>
            <item title="Emne"/>
            <item title="Fritekst"/>
        </headers>
        <advisors>
            <advisor title="Rådgiver: Søren Jepsen">
                <row>
                <elements>
                    <item field="Dato"> <!-- when type="xxxx" is not defined we default to using type="text" -->
                        01.05.06 <!-- Dato -->
                    </item>
                    <item field="CPR">
                        XXXXXX-XXXX <!-- CPR -->
                    </item>
                    <item field="Kundenavn">
                        Anna Jakob Jensen <!-- Kundenavn -->
                    </item>
                    <item field="Event">
                        Årlig afd. 06 <!-- Event -->
                    </item>
                    <item field="Status">
                        Kontakt <!--Status -->
                    </item>
                    <item field="Emne">
                        R-Utilfreds <!--Emne -->
                    </item>
                    <item>
                        <!--Fritekst -->
                    </item>
                </elements>

                </row>
               
                <row>
                <elements>

                    <item field="Dato"> <!-- when type="xxxx" is not defined we default to using type="text" -->
                        01.05.06 <!-- Dato -->
                    </item>
                    <item field="CPR">
                        XXXXXX-XXXX <!-- CPR -->
                    </item>
                    <item field="Kundenavn">
                        Pernille Thorling <!-- Kundenavn -->
                    </item>
                    <item field="Event">
                        Årlig afd. 06 <!-- Event -->
                    </item>
                    <item field="Status">
                        E-mail <!--Status -->
                    </item>
                    <item field="Emne">
                        B-Utilfreds <!--Emne -->
                    </item>
                    <item>
                        <!--Fritekst -->
                    </item>
                </elements>

                </row>
                <row>
                <elements>
    </row>
            </advisor>
        </advisors>
    </selectcustomers>
    </talefod>

XSL:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" omit-xml-declaration="yes" version="1.0" encoding="iso-8859-1" indent="yes"/>
    <xsl:strip-space elements="*"/>
    <xsl:param name="sortby" select="."/>
   
    <xsl:template match="/">
        <html>
            <head>
                <link rel="stylesheet" href="http://fioniaportalen/package/fioniabank/medarbejderportal/external/style/style.css"/>
                <title>Talefod projekt</title>
            </head>
            <body>
                <table width="100%" cellspacing="1" cellpadding="0" border="0" style="padding:3px">
                    <xsl:apply-templates select="talefod/selectcustomers"/>
                </table>
            </body>
        </html>
    </xsl:template>
    <xsl:template match="selectcustomers">
        <xsl:apply-templates select="advisors"/>
    </xsl:template>
   
    <xsl:template match="advisors">
        <xsl:for-each select="advisor">
            <tr class="tr_top">
                <td class="tblColumnHd">
                    <xsl:attribute name="colspan">
                        <xsl:value-of select="count(../../headers/item)"/>
                    </xsl:attribute>
                    <xsl:value-of select="@title"/>
                    <xsl:value-of select="position()"/>
                </td>
            </tr>
            <xsl:apply-templates select="../../headers"/>
            <xsl:apply-templates select="row"/>
                    <tr>
            <td>
                <br/>
            </td>
        </tr>
        </xsl:for-each>
    </xsl:template>
   
    <xsl:template match="headers">
        <tr class="tr_top">
            <xsl:for-each select="item">
                    <td class="tblColumnHd">
                        <xsl:value-of select="@title"/>
                    </td>
            </xsl:for-each>
        </tr>
    </xsl:template>
   
    <xsl:template match="row">
        <xsl:variable name="xxx" select="'Emne'"/>
        <tr class="evenrowno">
            <xsl:for-each select="elements">
                <xsl:sort select="item[field=$xxx]" order="ascending"/>
                    <xsl:for-each select="item">
                <td>
                    <xsl:value-of select="." />
                </td>
                </xsl:for-each>
            </xsl:for-each>
        </tr>
    </xsl:template>

</xsl:stylesheet>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I går 23:37 Poe strøm Af lurup i LAN/WAN
I går 14:46 GIF-EDITOR Af snestrup2000 i Billedbehandling
I går 14:03 Logge ind Af Bob i PC
I går 12:12 2 skærme - 1 virker - den anden siger No signal Af eksmojo i Skærme
I går 10:33 openvpn projekt Af dcedata1977 i Windows