Bonjour,

je suis débutant en XSLT, je dois néanmois réussir a présenter une liste imbriquée HTML à partir d'un fichier XML de cette forme :

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?xml version="1.0" encoding="UTF-8"?>
<catalogue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="catalogue.xsd">
	<domaines>
		<domaine>
			<nom><![CDATA[Hi-Fi]]></nom>
		</domaine>
		<domaine>
			<nom><![CDATA[Home-cinéma]]></nom>
		</domaine>
	</domaines>
 
 
	<rayons>
		<rayon>
			<nom><![CDATA[Enceintes]]></nom>
			<domaines>
				<domaine><![CDATA[Hi-Fi]]></domaine>
				<domaine><![CDATA[Home-cinéma]]></domaine>
			</domaines>
		</rayon>
		<rayon>
			<nom><![CDATA[Amplificateurs]]></nom>
			<domaines>
				<domaine><![CDATA[Hi-Fi]]></domaine>
				<domaine><![CDATA[Home-cinéma]]></domaine>
			</domaines>
		</rayon>
		<rayon>
			<nom><![CDATA[Supports]]></nom>
			<domaines>
				<domaine><![CDATA[Home-cinéma]]></domaine>
			</domaines>
		</rayon>
		<rayon>
			<nom><![CDATA[Ecrans]]></nom>
			<domaines>
				<domaine><![CDATA[Home-cinéma]]></domaine>
			</domaines>
		</rayon>
	</rayons>
 
	<categories>
		<categorie>
			<nom><![CDATA[Amplificateurs home-cinéma]]></nom>
			<rayons>
				<rayon><![CDATA[Amplificateurs]]></rayon>
			</rayons>
		</categorie>
		<categorie>
			<nom><![CDATA[Amplificateurs Haute-fidélité]]></nom>
			<rayons>
				<rayon><![CDATA[Amplificateurs]]></rayon>
			</rayons>
		</categorie>
		<categorie>
			<nom><![CDATA[Supports muraux]]></nom>
			<rayons>
				<rayon><![CDATA[Supports]]></rayon>
			</rayons>
		</categorie>
		<categorie>
			<nom><![CDATA[Pieds]]></nom>
			<rayons>
				<rayon><![CDATA[Supports]]></rayon>
			</rayons>
		</categorie>
		<categorie>
			<nom><![CDATA[Ecrans de projections]]></nom>
			<rayons>
				<rayon><![CDATA[Ecrans]]></rayon>
			</rayons>
		</categorie>
		<categorie>
			<nom><![CDATA[Téléviseurs]]></nom>
			<rayons>
				<rayon><![CDATA[Ecrans]]></rayon>
			</rayons>
		</categorie>
 
	</categories>
</catalogue>
Le résultat que j'aurais souhaité avoir en HTML est le 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
23
24
25
26
27
28
29
<ul>
		<li>Hi-fi
			<ul>
				<li>Enceintes</li>
				<li>Amplificateurs
					<ul>
						<li>Amplificateurs home-cinéma</li>
						<li>Amplificateurs Haute-fidélité</li>
					</ul>
				</li>
				<li>Supports
					<ul>
						<li>Supports muraux</li>
						<li>Pieds</li>
					</ul>
				</li>
			</ul>
		</li>
		<li>Home-Cinema
			<ul>
				<li>Ecrans
					<ul>
						<li>Ecrans de projections</li>
						<li>Téléviseurs</li>
					</ul>
				</li>
			</ul>
		</li>
	</ul>
Actuellement j'arrive a faire trois liste séparées mais je n'arrive pas les imbriquer les unes aux autres.
mon xslt actuelle :
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:csv="http://www.ora.com/XSLTCookbook/namesapce/html">
 
	<xsl:template match="/">
 
		<html>
			<head>
				<title>Arborescence</title>
			</head>
			<body BGCOLOR="#FFFFFF">
				<xsl:apply-templates />
			</body>
		</html>
	</xsl:template>
 
	<xsl:template match="domaines">
		<ul>
			<xsl:for-each select="domaine">
				<li>
					<xsl:value-of select="nom" />
				</li>
			</xsl:for-each>
		</ul>
	</xsl:template>
 
	<xsl:template match="rayons">
		<ul>
			<xsl:for-each select="rayon">
				<li>
					<xsl:value-of select="nom" />
				</li>
			</xsl:for-each>
		</ul>
	</xsl:template>
 
	<xsl:template match="categories">
		<ul>
			<xsl:for-each select="categorie">
				<li>
					<xsl:value-of select="nom" />
				</li>
			</xsl:for-each>
		</ul>
	</xsl:template>
 
</xsl:stylesheet>
Pouvez-vous m'éclairer s'il vous plait, car je ne suis pas habitué à la logique XSLT.

Merci mille fois.