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

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>
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
 
<xsl:for-each select="//secteur">
 
<xsl:for-each select="zone[position() &lt; 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>
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.

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