Bonjour
ce post fait suite à celui-ci.
Je travaille avec Dreamweaver, quand je lance un aperçu avec Safari ou Firefox (depuis le menu Aperçu de Dreamweaver), pas de probleme. Mais quand j'appelle le fichier directement dans Firefox, le message suivant apparait:
"Error during XSLT transformation: XSLT transformation failed."
Alors que tout se passe bien sous Safari
Le probléme apparait depuis que j'ai ajouté 2 tests conditionnels xsl:if dans:
Pour transformer ce code xml
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 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> <xsl:key name="cle" match="item" use="parent"/> <xsl:template match="/"> <xsl:apply-templates select="plist/item[not(parent)]"> <xsl:with-param name="marge" select="''"/> <xsl:sort select="nom" order="ascending"/> </xsl:apply-templates> </xsl:template> <xsl:template match="item"> <xsl:if test="type!='contenu'"><!-- ICI --> <xsl:param name="marge" /> <xsl:value-of select="concat($marge,'',nom)"/> <xsl:element name="div"> <xsl:attribute name="id"><xsl:value-of select="idunique" /></xsl:attribute> <xsl:attribute name="class">open</xsl:attribute> <xsl:apply-templates select="key('cle',idunique)"> <xsl:with-param name="marge" select="concat($marge,'-')"/><xsl:sort select="nom" order="ascending"/> </xsl:apply-templates> </xsl:element> </xsl:if> <xsl:if test="type='contenu'"><!-- ET LÀ --> <xsl:param name="marge" /> <xsl:value-of select="concat($marge,'',nom)"/> <br/> <xsl:apply-templates select="key('cle',idunique)"> <xsl:with-param name="marge" select="concat($marge,'-')"/><xsl:sort select="nom" order="ascending"/> </xsl:apply-templates> </xsl:if> </xsl:template> </xsl:stylesheet>
Voici le code source généré qui semble tout à fait correct:
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
82
83
84
85
86
87
88
89
90
91
92
93
94 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="menu.xsl" type="text/xsl"?> <plist> <item> <nom>master</nom> <type>menu</type> <idunique>1</idunique> </item> <item> <nom>Dossier2</nom> <type>dossier</type> <parent>1</parent> <idunique>2</idunique> </item> <item> <nom>Dossier1</nom> <type>dossier</type> <parent>1</parent> <idunique>3</idunique> </item> <item> <nom>DossierX</nom> <type>dossier</type> <parent>5</parent> <idunique>4</idunique> </item> <item> <nom>Dossier</nom> <type>dossier</type> <parent>2</parent> <idunique>5</idunique> </item> <item> <nom>DossierY</nom> <type>dossier</type> <parent>5</parent> <idunique>6</idunique> </item> <item> <nom>Element</nom> <type>contenu</type> <parent>3</parent> <idunique>7</idunique> </item> <item> <nom>ElementA</nom> <type>contenu</type> <parent>4</parent> <idunique>8</idunique> </item> <item> <nom>ElementB</nom> <type>contenu</type> <parent>4</parent> <idunique>9</idunique> </item> <item> <nom>Element1</nom> <type>contenu</type> <parent>6</parent> <idunique>10</idunique> </item> <item> <nom>Element1</nom> <type>contenu</type> <parent>1</parent> <idunique>11</idunique> </item> <item> <nom>Element3</nom> <type>contenu</type> <parent>1</parent> <idunique>12</idunique> </item> <item> <nom>Element2</nom> <type>contenu</type> <parent>1</parent> <idunique>13</idunique> </item> <item> <nom>Element2</nom> <type>contenu</type> <parent>6</parent> <idunique>14</idunique> </item> <item> <nom>Element</nom> <type>contenu</type> <parent>2</parent> <idunique>15</idunique> </item> </plist>
Savez-vous pourquoi?
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 <html> <head></head> <body> master <div id="1" class="open">-Dossier1 <div id="3" class="open">--Element<br> </div> -Dossier2 <div id="2" class="open">--Dossier <div id="5" class="open">---DossierX <div id="4" class="open">----ElementA<br> ----ElementB<br> </div> ---DossierY <div id="6" class="open">----Element1<br> ----Element2<br> </div> </div> --Element<br> </div> -Element1<br> -Element2<br> -Element3<br> </div> </body> </html>
Malheureusement je ne dispose pas de windows, je n'ai que Mac OSX pour tester mon code.
Par avance merci de votre aide.
Partager