Cmd javascript pr ouvrir XML + XSL

Résolu/Fermé
clint_889 Messages postés 10 Date d'inscription jeudi 8 juillet 2010 Statut Membre Dernière intervention 19 octobre 2010 - 8 juil. 2010 à 17:05
 uNreaL - 2 mai 2011 à 11:35
Bonjour,

Je cale sur un problème :
J'ai toutes une série de fichiers XML dans un même dossier. Dans une page HTML, par le biai d'une textbox je selectionne le fichier XML que je souhaite ouvrir.

D'un autre coté j'ai trois fichiers XSL que je voudrais associer tour à tour au fichier XML séléctionné. Le choix du fichier XSL se ferait par un menu.

J'aimerai savoir si il est possible d'ecrire une commande javascript dans une page HTML me permettant d'ouvrir, d'afficher ou de charger mon fichier XML avec tel ou tel fichier XSL.

Si qqun a une astuce, je suis preneur !! (un newbee à bout ;-) )

A voir également:

1 réponse

clint_889 Messages postés 10 Date d'inscription jeudi 8 juillet 2010 Statut Membre Dernière intervention 19 octobre 2010 3
Modifié par clint_889 le 21/10/2010 à 10:37
le pb n'était pas posé bien clairement ! Bref, voici ce que j'ai réussi à faire :

<html> 
  <head> 
    <script> 
      var xml = top.frames["Haut"].ChemXML; 
    </script> 
  </head> 
  <body onload="transform(loadXML(xml), loadXML('03_Mesures.xsl'), 'transform')"> 
    <div id="transform"> 
      <!-- c'est ici que ce fait la transformation --> 
    </div> 
  </body> 
</html> 



avec ces deux fonctions javascript (utilisation de ActiveX, donc fonctionne uniquement sur IE) :

//**************************************************************** 
//Ces deux fonctions associées permettent d'afficher une page HTML 
//en choisissant les fichiers XML et XSL que l'on souhait afficher 
//**************************************************************** 

      function loadXML(url) 
      { 
        var xmlDoc; 
        /* chargement du fichier XML */ 
        try { 

          // navigateur basé sur Gecko 
          if (document.implementation && document.implementation.createDocument) 
          { 
            xmlDoc = document.implementation.createDocument('', '', null); 
            xmlDoc.load(url); 

          // ActiveX pour Internet Explorer 
          } else if (window.ActiveXObject) { 
            try { 
              xmlDoc = new ActiveXObject('Msxml2.XMLDOM'); 
            } catch (e) { 
              xmlDoc = new ActiveXObject('Microsoft.XMLDOM'); 
            } 
            xmlDoc.async = false; 
            xmlDoc.load(url); 

          // à l'aide de lobjet XMLHTTPRequest 
          } else if (window.XMLHttpRequest) { 
            xmlDoc = new XMLHttpRequest(); 
            xmlDoc.overrideMimeType('text/xml'); 
            xmlDoc.open('GET', url, false); 
            xmlDoc.send(null); 
            if (this.xmlDoc.readyState == 4) xmlDoc = xmlDoc.responseXML; 
          } 
        } catch (e) { 
          return e; 
        } 
        return xmlDoc; 
      } 

      function transform(xml, xsl, id) 
      { 
        try { 
          // navigateur basé sur Gecko 
          if (window.XSLTProcessor) 
          { 
            var fragment; 
            var xsltProcessor = new XSLTProcessor(); 
             
            xsltProcessor.importStylesheet(xsl); 
            fragment = xsltProcessor.transformToFragment(xml, document); 
            var target = document.getElementById(id); 
            target.appendChild(fragment); 
            document.appendChild(target); 
          // ActiveX pour Internet Explorer 
          } else if (window.ActiveXObject) { 
            var target = document.getElementById(id); 
            target.innerHTML = xml.transformNode(xsl); 
          } 
        } catch (e) { 
          return e; 
        } 
      } 
2
question stupide, il sert a quoi l'argument id dans la fonction transform() ?
0