Bonjour à tous,

Je sollicite votre aide car débutant avec XSL, je n'ai pas trouvé d'exemples se rapprochant de mon cas précis.
J'ai essayé plusieurs choses, for-each-group, muench, key, récursivité, mais je n'arrive à rien, je ne sais pas vers quelle methode me tourner.

J'ai en entrée un XML formé d'une succession d'éléments "contenu" possédant tous un attribut "class".
Cet attribut correspond à un style appliqué au différentes parties du texte : les différentes valeurs de cet attribut apparaissent donc dans un ordre complètement aléatoire.

Exemple :

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
 
<document>
	<contenu class="classeA">texte A...</contenu>
	<contenu class="classeA">texte B...</contenu>
	<contenu class="classeA">texte C...</contenu>
	<contenu class="classeC">texte D...</contenu>
	<contenu class="classeC">texte E...</contenu>
	<contenu class="classeB">texte F...</contenu>
	<contenu class="classeA">texte G...</contenu>
	<contenu class="classeD">texte H...</contenu>
	<contenu class="classeD">texte I...</contenu>
	<contenu class="classeA">texte J...</contenu>
	<contenu class="classeA">texte K...</contenu>
	<contenu class="classeB">texte L...</contenu>
	<contenu class="classeB">texte M...</contenu>
...
</document>
Voici ce que je dois obtenir :
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
23
24
25
26
27
 
 
<document>
	<contenu class="classeA">
		<contenu class="1">texte A...</span>
		<contenu class="2">texte B...</span>
		<contenu class="3">texte C...</span>
	</contenu>
	<contenu class="classeC">
		<contenu class="1">texte D...</span>
		<contenu class="2">texte E...</span>
	</contenu>
	<contenu class="classeB">texte F...</contenu>
	<contenu class="classeA 1">texte G...</contenu>
	<contenu class="classeD">
		<contenu class="1">texte H...</span>
		<contenu class="2">texte I...</span>
	</contenu>
	<contenu class="classeA 2">
		<contenu class="1">texte J...</span>
		<contenu class="2">texte K...</span>
	</contenu>
	<contenu class="classeB 1">
		<contenu class="1">texte L...</span>
		<contenu class="2">texte M...</span>
	</contenu>
</document>
Si plusieurs éléments avec la même valeur d'attribut "class" se suivent, ils doivent être regroupés dans un élément possédant le même attribut.
L'attribut class des éléments regroupés doit être numérotés (compteur).

Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<contenu class="classeA">texte A...</contenu>
<contenu class="classeA">texte B...</contenu>
<contenu class="classeA">texte C...</contenu>
devient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<contenu class="classeA">
	<contenu class="1">texte A...</span>
	<contenu class="2">texte B...</span>
	<contenu class="3">texte C...</span>
</contenu>

Une fois ces regroupements effectués, les différentes occurences d'une même classe doivent être numérotées également :
Par exemple
<contenu class="classeA 1">texte G...</contenu>

Car on a déjà <contenu class="classeA"> au dessus.

La dernière contrainte que j'ai, c'est que l'ordre des éléments texte ne doit pas être modifié.

D'avance, un immense merci pour votre aide !