Javascript/XML/XSL [Résolu]

Messages postés
2
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
12 janvier 2007
- - Dernière réponse : bewonder
Messages postés
2
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
12 janvier 2007
- 12 janv. 2007 à 16:32
Bonjour,
Je souhaite juste charger un document XML et un document XSL afin de les fusionner pour afficher le résultat dans un div.

Mais je butte sur un tas de problèmes.
Les variables xml et xsl sont bien déclarées comme des objets dans load_xml ou load_xsl mais sont à null dans load_file.
Je les ai mis en globales car je ne les récupérais pas non plus en objets par un return de la fonction.
Ce script me fait des trucs bizarres, j'ai mis en commentaire l'appel de la fonction devant m'afficher le résultat de la fusion.
Si je fais un alert de xml dans load_xml par exemple, je peux avoir plusieurs boîtes qui s'affichent.

Mes deux fichiers se fusionnent bien si j'ouvre le XML dans un navigateur, c'est juste un listing bête et méchant des données XML.

Voici le code (un amalgame de ce que j'ai pu trouvé sur le net) et merci pour vos réponses :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<SCRIPT language= "Javascript">
<!--
  var xhr = null;
  var xml = null;
  var xsl = null;



  function getXhr(){
   if(window.XMLHttpRequest){ // Firefox et autres
     xhr = new XMLHttpRequest();
    if (xhr.overrideMimeType) xhr.overrideMimeType('text/xml');
   }
   else if(window.ActiveXObject){ // Internet Explorer
     try {
       xhr = new ActiveXObject("Msxml2.XMLHTTP");
     }
    catch (e) {
      xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (xhr.overrideMimeType) xhr.overrideMimeType('text/xml');
   }
   else {
     alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
     xhr = false;
   }
  }



  function load_xml(value){
    getXhr();
    xhr.onreadystatechange = function(){     if(xhr.readyState 4 && xhr.status 200){
        xml = xhr.responseXML;
     }
    }
    xhr.open("POST","
http://localhost/XML/essai.xml",true
);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    //xhr.setRequestHeader("Connection", "close");
    xhr.send("quoi ="+value);
  }



  function load_xsl(nomfichier){
    getXhr();
    xhr.onreadystatechange = function(){     if(xhr.readyState 4 && xhr.status 200){
        xsl = xhr.responseXML;
     }
    }
    xhr.open("GET","
http://localhost/XML/essai.xsl",true
);
    xhr.send(null);
  }



  function transform(ident) {
    try { /* Navigateur basé sur Gecko. */
      if (window.XSLTProcessor) {
        var xsltProcessor = new XSLTProcessor();
        xsltProcessor.importStylesheet(xsl);
        var fragment = xsltProcessor.transformToFragment(xml, document);
        var target = document.getElementById(ident);
       rng = document.createRange();
       rng.setStartBefore(target);
       while (target.hasChildNodes())target.removeChild(target.lastChild);
       target.appendChild(fragment);
      }
      else if (window.ActiveXObject) { /* ActiveX pour Internet Explorer. */
        document.getElementById(ident).innerHTML = xml.transformNode(xsl);
      }
    }
    catch (e) {
      return e;
    }
  }



  function load_file(xml_charger, xsl_charger, ident, valeur_liste) {
    load_xml(xml_charger);
    load_xsl(xsl_charger+".xsl");
    //var fichier = transform(ident);
  }



function getList(valeur_liste, nom_div_liste){
  if (nom_div_liste=='exposition_vents'){
    load_file(nom_div_liste, nom_div_liste, nom_div_liste, valeur_liste);
  }
}



-->
</script>
<title>Test xml</title>
</head>


  <FORM NAME="form1" ACTION="index.php" METHOD="POST" >
  

       <select id="form_exposition" onChange="getList(this.options[this.selectedIndex].value, 'exposition_vents');" >
      <option value ='1'>un</option>
     <option value='2'>deux</option>
    </select>
  

  </FORM>


  <script>getList('1', 'exposition_vents');</script>



</html>
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
2
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
12 janvier 2007
3
Merci
Problème résolu ici : http://www.developpez.net/forums/showthread.php?t=261277

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 207 internautes nous ont dit merci ce mois-ci

Commenter la réponse de bewonder