Bonjour à tous,

J'ai le document xml suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<Eau>
	<riviere distance="500 m"/>
	<lac distance="100 m"/>
	<mer distance="200 m"/>
	<etang distance="100 m"/>
	<bassin distance="500 m"/>
</Eau>
Je voudrais regrouper les enfants du noeud Eau pour obtenir le résultat suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
100 m : lac, etang
200 m : mer
500 m : riviere, bassin
Voici le début de mon fichier de transformation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<xsl:template match="/Eau">
	<xsl:apply-templates select="riviere|lac|mer|etang|bassin"><xsl:sort select="@distance" /></xsl:apply-templates>
</xsl:template>
 
<xsl:template match="riviere|lac|mer|etang|bassin">
...
</xsl:template>
Mon idée était de trier les éléments par l'attribut distance et de regarder à la position -1 pour voir si la distance change ou pas.
Le problème est que quand je suis dans mon deuxième template je ne sais pas comment obtenir le noeud précédent.
Quelqu'un sert-il m'aider sur ce problème, ou existe-t-il une autre méthode pour arriver à mon fichier de sortie.

Merci.