Aller au contenu

Transformation XSL - XML en javascript


petit-ourson

Sujets conseillés

Bonjour,

J'essaie de faire ma transformation XML avec feuille XSL en javascript mais je coince avec IE.

Il y a bien cela :

   source = new ActiveXObject("Microsoft.XMLDOM");
  style = new ActiveXObject("Microsoft.XMLDOM");
  source.async = false;
  style.async = false;
  source.load(FichierXML);
  style.load(FichierXSL);

document.getElementById("idResultat").innerHTML = source.transformNode(style);

mais le truc, c'est que j'utilise les méthode de l'objet XMLHttpRequest pour récupérer mes données (fichier xml et xsl).

Il faudrait que j'arrive à transformer mon objet retourné par la méthode responseXML (de l'objet XMLHttpRequest) en XMLDOM.

Si quelqu'un avait un petite idée ;o)

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Un exemple qui marche sur IE ... quand il n'y a rien au départ (pas de HTML)

<html>
<body>
<script type="text/javascript">
// chargement du fichier XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("xsl_8.xml")
// chargement du fichier XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("xsl_8.xsl")
// transformation en Html
document.write(xml.transformNode(xsl))
</script>
</body>
</html>

Mais je cherche aussi la réponse sur une partie partielle de HTML

Lien vers le commentaire
Partager sur d’autres sites

Moi, je n'ai qu'un demi problème par rapport à ta requête :P

<html>
<head>
<script type="text/javascript">
function Réaction(Cible,Paramètres) {
// chargement du fichier XSL
var xslObj = new ActiveXObject("Microsoft.XMLDOM");
xslObj.async = false;
xslObj.load("xsl_a.xsl");

// chargement du fichier XML
   var xhrObj = new ActiveXObject('Microsoft.XMLHTTP');

   xhrObj.open('POST', 'xml_a.php', true);      // En attendant une requete PHP
   xhrObj.onreadystatechange = function() {
 if(xhrObj.readyState == 4) {
 var xmlObj = xhrObj.responseXml;      // Objet XML renvoyé du serveur (en mémoire)
 var Résultat = xmlObj.transformNode(xslObj);
 document.getElementById(Cible).innerHTML = Résultat;
   }
   }
   xhrObj.setRequestHeader('Content-type','application/x-www-form-urlencoded');
   xhrObj.send(Paramètres);
}
</script>
</head>
<body>
<div id='Début'>Début<br><input name='Début' value='Début' size=10></div>
<div id='Cible'>Cible<br><input name='Cible' value='Cible' size=10></div>
<div id='Suite' onclick="Réaction('Cible','Classe=Plouc')">Suite<br><input name='Suite' value='Suite' size=10></div>
</body>
</html>

la réponse ne fournis que l'en-tete du tableau passé en XML par le PHP

(basique le PHP, il fait un echo du XML, il se compliquera plus tard)

Mais le code fourni par petit-ourson fonctionne chez moi !

Lien vers le commentaire
Partager sur d’autres sites

J'ai un peu laisser tombé l'affaire en fait ;o)

J'opte pour une transformation côté serveur comme cela, j'ai moins de surprise et je gère un système de cache. Enfin, j'ai pas eu besoin de l'utiliser, c'était plus pour faire quelques tests.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...