Cmd javascript pr ouvrir XML + XSL

Résolu
clint_889 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
 uNreaL -
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   Statut Membre Dernière intervention   3
 
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
uNreaL
 
question stupide, il sert a quoi l'argument id dans la fonction transform() ?
0