Bonjour à toutes et tous
Je sèche sur un problème qui à l'origine me semblait facile à régler... mais au bout de 3 jours et de recherche, j'avoue que je bloque, ca doit être tout bête pourtant
Je vous donne un exemple simplifié : je fais un tri sur une liste d'identifiant/surface, imaginons le xml suivant
j'ai ensuite dans le XSL, quelque chose comme cela
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <secteurs id="1"> <zone> <id>0</id> <surface>10</surface> </zone> <zone> <id>1</id> <surface>130</surface> </zone> <zone> <id>2</id> <surface>15</surface> </zone> <zone> <id>3</id> <surface>95</surface> </zone> </secteurs>
L'idée c'est de n'afficher que les 2 premiers items, triés par surface décroissante. Mais là dans le code, la sélection du nombre de zone se fait avant le tri.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <xsl:for-each select="//secteur"> <xsl:for-each select="zone[position() < 3]"> <xsl:sort select="surface" data-type="number" order="descending" /> <ul> <li><xsl:value-of select="id"/> - <xsl:value-of select="surface"/></li> </ul> </xsl:for-each>
Comment avoir le tri après le choix du nombre de zone que l'on veut ???
le résultat devrait être :
- id:1 surface:130
- id:3 surface:95
D'avance merci à ceux qui pourront m'aider...
j'suis sûr que c'est tout con... je dois bloquer sur un truc![]()
Partager