XSL : Trie spécifique - XML/XSL - Programmation
Marsh Posté le 15-06-2005 à 10:15:11
J'ai vu qu'il existe des regroupements ? Ce serait peut etre une possibilite ????
Comment ca marche ???
MERCI ENCORE
Marsh Posté le 15-06-2005 à 10:39:03
Je pense que le problème c'est le contenu pas très orthodoxe de ta balise date...
dans une base de données traditionnelle un champ est soit du caractère soit du numérique, ici ton substring va au mieux être évalué comme étant 0 donc les dates cloturées passent avant les autres...
Perso je solutionnerais le problème en faisant deux selections parmis les dates, les non cloturées qu'on va trier et les cloturées dont ont se fiche royalement!
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> |
et le stylesheet
<?xml version="1.0" encoding="ISO-8859-1"?> |
J'ai pas creusé mais il y a aussi moyen de faire des tri à l'aide d'xsl:key ( c'est une sorte d'index qu'on définit sur le xml, c'est utile pour de gros tri où une utilisation fréquente). Apparemment vu la taille du problème le xsl:sort suffit largement, il ne va pénaliser les temps d'exécutions.
Marsh Posté le 15-06-2005 à 09:52:14
Bonjour,
Voilà, j'ai un XML du type :
<info>
<nom>...</nom>
<date>05/09/2005</date>
</info>
<info>
<nom>...
<date>08/09/2005</date>
</info>
<info>
<nom>...
<date>cloturée</date>
</info>
...
Voilà, j'aimerai trier mes dates en ordre décroissant, pour obtenir l'ordre :
08/09/2005
05/09/2005
cloturée
Le problème est que quand je trie par date de cet facon :
<xsl:sort select="substring(date,7,4)" order="descending"/> <!-- year -->
<xsl:sort select="substring(date,4,2)" order="descending"/> <!-- month -->
<xsl:sort select="substring(date,1,2)" order="descending"/> <!-- day -->
j'obtient :
cloturée
08/09/2005
05/09/2005
Merci de m'aiguiller, ...
Tchoo, Joey