Bonjour,
J'ai un petit soucis dans un projet sur lequel je travaille.
Le code serait plutôt complexe et confidentiel à publier, j'ai donc essayer avec un code plus simple provenant d'un site de tutoriel et la même erreur ce produit.
Le code d'exemple avec les XML et XLS : http://www.w3schools.com/xml/xml_xsl.asp
Le code de la page html :
Ça fonctionne #1 sous Firefox et Google Chrome, mais sous IE j'ai l'erreur suivante : La feuille de style ne contient pas d'élément document. La feuille de style est peut-être vide ou ne constinue pas un document XML correctement constitué.
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 (... ( jquery et css etc) ) <script type="text/javascript"> function loadXMLDoc(filename) { if (window.ActiveXObject) { xhttp = new ActiveXObject("Msxml2.XMLHTTP"); } else { xhttp = new XMLHttpRequest(); } xhttp.open("GET", filename, false); try {xhttp.responseType = "msxml-document"} catch(err) {} // Helping IE11 xhttp.send(""); return xhttp.responseXML; } function displayResult() { // chargement données xml = loadXMLDoc("test1.xml"); xsl = loadXMLDoc("test1.xsl"); // code for IE if (window.ActiveXObject || xhttp.responseType == "msxml-document") { ex = xml.transformNode(xsl); document.getElementById("example").innerHTML = ex; } // code for Chrome, Firefox, Opera, etc. else if (document.implementation && document.implementation.createDocument) { xsltProcessor = new XSLTProcessor(); xsltProcessor.importStylesheet(xsl); resultDocument = xsltProcessor.transformToFragment(xml, document); document.getElementById("example").appendChild(resultDocument); } } (...) <body> <div id="example"> </div> <script> $( document ).ready(function() { displayResult(); }); </script> </body>
et l'erreur pointe sur ex = xml.transformNode(xsl);
Sa c'est mon problème quand je roule la page en local.
Quand je la roule sur notre serveur web, ce n'est pas la même erreur qui apparaît mais je n'arrive pas à faire mon import d'une autre feuille xls a partir de ma feuille principal de xls
Feuille principale utilisé dans la transformation
Code xml : 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 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "*"> <!ENTITY copy "©"> <!ENTITY reg "®"> <!ENTITY trade ""> <!ENTITY mdash ""> <!ENTITY ldquo ""> <!ENTITY rdquo ""> <!ENTITY pound "£"> <!ENTITY yen "¥"> <!ENTITY euro ""> ]> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="district.xsl" /> <xsl:output method="html" encoding="utf-8" /> <xsl:template match="/"> <div align="center"> <xsl:call-template name="d1" /> </div> </xsl:template> </xsl:stylesheet>
district.xsl
Code xml : 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 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "*"> <!ENTITY copy "©"> <!ENTITY reg "®"> <!ENTITY trade ""> <!ENTITY mdash ""> <!ENTITY ldquo ""> <!ENTITY rdquo ""> <!ENTITY pound "£"> <!ENTITY yen "¥"> <!ENTITY euro ""> ]> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="utf-8" version="4.0" /> <xsl:variable name="vUpper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/> <xsl:variable name="vLower" select="'abcdefghijklmnopqrstuvwxyz'"/> <xsl:template name="d1"> <xsl:apply-templates select="data/districts/d01" /> </xsl:template> </xsl:stylesheet>
J'ai créer des templates dans la feuille importé et je n'arrive pas à les appeler dans ma feuille principale, sa me dit qu'ils sont introuvable. Encore une fois, si j'ouvre la même page avec firefox ou Chrome, ça fonctionne.
Donc si vous aviez une piste de solution pour mon problème 1 ou 2, je vous en serait très très reconnaissant.
Partager