2010-04-21 11 views
2

Je suis en train de trier par date et un message d'erreur au sujet de la feuille de style ne peut pas être chargéComment trier un fichier XML par date dans XLST

J'ai trouvé une réponse sur la façon dont d'autres ont suggéré, mais il n » t travailler pour moi

Voici où il est censé trier. La ligne est commentée où le genre devrait se produire

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 

<xsl:template name="hoo" match="/"> 
    <html> 
    <head> 
    <title>Registered Festival Organisers and Festivals</title> 
    <link rel="stylesheet" type="text/css" href="userfestival.css" /> 
    </head> 
    <body> 
    <h1>Registered Festival Organisers and Festivals</h1> 

    <xsl:for-each select="folktask/member"> 

    <xsl:if test="user/account/userlevel='3'"> 
     <!--<xsl:sort select="concat(substring(festival/event/datefrom,1,4),substring(festival/event/datefrom, 6,2),substring(festival/event/datefrom, 9,2))" data-type="number" order="ascending"/>--> 

noeud XML Exemple de

<festival id="1"> 
    <event> 
     <eventname>Oxford Folk Festival</eventname> 
     <url>http://www.oxfordfolkfestival.com/</url> 
     <datefrom>2010-04-07</datefrom> 
     <dateto>2010-04-09</dateto> 
     <location>Oxford</location> 
     <eventpostcode>OX1 9BE</eventpostcode> 
     <coords> 
     <lat>51.735640</lat> 
     <lng>-1.276136</lng> 
     </coords> 
    </event> 
    </festival> 
+0

pouvez-vous fournir un message d'erreur exact et le xml de folktask vers le bas? – BlackICE

+0

@AdRock: Vous obtenez un message d'erreur indiquant que le fichier XSLT ne peut pas être chargé. Je ne sais pas pour vous, mais pour moi, cela ressemble à ce que rien * dans le fichier XSLT peut faire partie du problème. – Tomalak

+0

Ceci est le message d'erreur Erreur lors du chargement de la feuille de style: l'analyse d'une feuille de style XSLT a échoué. – AdRock

Répondre

3

Il n'y a pas besoin de faire des manipulations de cordes compliquées qui se transforment <datefrom> en nombre. Les dates au format yyyy-mm-dd sont parfaitement adaptées au texte.

<xsl:for-each select="folktask/member[user/account/userlevel='3']"> 
    <xsl:sort select="festival/event/datefrom" /> 
    <!-- ... --> 
</xsl:for-each> 
+0

Merci ... qui a fait l'affaire – AdRock