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 :
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
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>
Actuellement j'arrive a faire trois liste séparées mais je n'arrive pas les imbriquer les unes aux autres.
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>
mon xslt actuelle :
Pouvez-vous m'éclairer s'il vous plait, car je ne suis pas habitué à la logique XSLT.
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>
Merci mille fois.
Partager