Téléchargement
illégal
Posez votre question Signaler

Cmd javascript pr ouvrir XML + XSL [Résolu]

clint_889 10Messages postés 8 juillet 2010Date d'inscription 19 octobre 2010Dernière intervention - Dernière réponse le 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 ;-) )
Lire la suite 

Cmd javascript pr ouvrir XML + XSL »

2 réponses
Réponse
+2
moins plus
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; 
        } 
      } 
uNreaL - 2 mai 2011 à 11:35
question stupide, il sert a quoi l'argument id dans la fonction transform() ?
Ajouter un commentaire
Ce document intitulé « Cmd javascript pr ouvrir XML + XSL » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?