Bonjour j'ai un problème avec MSXML4 qui dirait-on ne prend pas en compte les <!DOCTYPE>. Sur ma machine j'ai MSXML3 et MSXML4 d'installées.
voilà le détail.
j'ai le fichier XML suivant
Accueil.xml
Que j'aimerais faire appliquer au fichier XSL suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE ACCUEIL [ <!ENTITY xml "extended markup language"> ]> <ACCUEIL> <IMAGE>images/logoCA.jpeg</IMAGE> <TEXTE>On utilise du &xml; </TEXTE> </ACCUEIL>
Accueil.xsl
Je sais que c'est pas conseillé d'utiliser le parseur sur le client mais là j'en ai besoin.
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 <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="ACCUEIL"> <p> <img src="{IMAGE}" align="left"/> <xsl:value-of select="TEXTE"/> </p> </xsl:template> </xsl:stylesheet>
Donc j'utilise un fichier HTML et JScript pour XMLDOM:
accueil.htm
Et bien rien ne se passe à cause du <!DOCTYPE> et le pire c'est que je n'ai pas de message d'erreur.
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 <html> <head> <title>ACCUEIL</title> <link rel="stylesheet" type="text/css" href="css/style.css"> <script language="javascript"> function init() { // Document XML var source = new ActiveXObject("Msxml2.DOMDocument.4.0"); source.async = false; source.resolveExternals = true; source.validateOnParse = true; source.load("Accueil.xml"); // Document XSL var stylesheet = new ActiveXObject("Msxml2.DOMDocument.4.0"); stylesheet.async = false; stylesheet.load("Accueil.xsl"); // transformation target.innerHTML = source.transformNode(stylesheet); } </script> </head> <body onload="init()"> <div id="target" /> </body> </html>
Dans la partie JScript on dirait que le fichier n'est pas chargé en dépit du fait que j'utilise resolveExternals et validateOnParse.
Est-ce un bug connu de MSXML?
Quand j'enlève le <!DOCTYPE> et l'<!ENTITY> et la référence à l'entité &xml; de Accueil.xml, ca fonctionne.
Merci par avance.
Partager