Bonjour à tous
Je débute en XSLT et je ne sais pas comment obtenir ce que je veux.

J'ai la structure suivante :

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
<Systeme>
	<Document>
		<Type>PRO</Type>
		<Domaine>COM</Domaine>
		<Famille>AEC</Famille>
		<Libelle>Avis Echéance</Libelle>
	</Document>
	<Document>
		<Type>BUR</Type>
		<Domaine>COM</Domaine>
		<Famille>DEV</Famille>
		<Libelle>Offre commune</Libelle>
	</Document>
	<Document>
		<Type>BUR</Type>
		<Domaine>COM</Domaine>
		<Famille>DEV</Famille>
		<Libelle>Tarificateur MRE ACTE iard</Libelle>
	</Document>
Je cherche à regrouper les documents par domaine puis famille :
Par domaine, j'y arrive 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
23
24
25
26
27
28
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="domaine-gr" match="Document" use="Domaine" />  
<xsl:template match="/">
<html>
<head>
<LINK rel="stylesheet" type="text/css" href="tri.css"/>
</head>
<body>
<ul class="niveau1">
<xsl:for-each select="//Document[generate-id()= generate-id(key('domaine-gr',Domaine)[1])]">
		<li> 
			<xsl:value-of select="Domaine" />
			<ul class="niveau2">   
				<xsl:for-each select="key('domaine-gr',Domaine)">
					<li> 
						<xsl:value-of select="Famille" />
						- <xsl:value-of select="Libelle" />
					</li>
				</xsl:for-each>
			</ul>
		</li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Les class sont pour mon css utilisé pour la mise en forme.
Avec ce XSLT, j'obtiens la liste de toutes les paires famille-libellé par domaine.
Je voudrais maintenant regrouper ensuite chaque famille de domaine.

au lieu d'avoir :
COM
- AEC - avis échéance
- DEV - offre commune
- DEV - Tarificateur


Je voudrais :
COM
- AEC
--- avis échéance
- DEV
--- offre commune
--- Tarificateur


Encore désolé pour la mise en page mais je n'ai pas réussi à faire mieux.
Bonne journée à tous et merci d'avance.