Informatique, internet et puis un peu de tout !
icône RSS Facebook icon Twitter icon
  • XSLT via javascript

    Posté le 1 janvier 2009 Internet & Technologies , ,

    Voici un code très efficace pour appliquer une feuille de style XSL à un fichier XML grâce au javascript. L'un des avantages d'utiliser le javascript pour cette opération et de récuperer votre fichier stylé dans une variable et ainsi de l'insérer directement dans un div.

    Voici le code magique, il est testé et fonctionnel sur Firefox 2, opéra 9, IE7. Malheureusement Webkit (Safari et Chrome) n'ont pas d'objets équivalent pour permettre l'impémentation.

    xsltLoad ('arbre.xml', 'menu.xsl', 'menu');
    
    function xsltLoad(xml, xsl, id){
        xsltDo(loadXML(xml), loadXML(xsl), id);
      }
    
    function loadXML(url){
      var xmlDoc;
    
     	//Gecko
       if (document.implementation && document.implementation.createDocument){
         xmlDoc = document.implementation.createDocument('', '', null);
         xmlDoc.async=false;
         xmlDoc.load(url);
       }
    
     	//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);
       }
    
      return xmlDoc;
    }
    
    function xsltDo(_xml, _xsl, _id) {
    	//Gecko
    	if (window.XSLTProcessor){
    	  var xsltProcessor = new XSLTProcessor();
    	  xsltProcessor.importStylesheet(_xsl);
    	  var fragment = xsltProcessor.transformToFragment(_xml, document);
    	  var target = document.getElementById(_id);
    
    	  target.innerHTML = '';
    	  target.appendChild(fragment);
    	}
    	//Internet Explorer
    	else if (window.ActiveXObject){
    	  var target = document.getElementById(_id);
    	  target.innerHTML = _xml.transformNode(_xsl);
    	}
    }

    Laisser une réponse