Bonjour,

Pour afficher un fichier XML, sur une page web j'utilise un fichier XSL couplé au javascript ci-dessous.

Cela fonctionne nickel avec IE, safari et chrome, mais rien sur Firefox....


function loadXMLDoc(dname)
{
  if (window.XMLHttpRequest)
  {
    xhttp=new XMLHttpRequest();
  }
  else
  {
    xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xhttp.open("GET",dname,false);
  xhttp.send("");
  return xhttp.responseXML;
}



// Fonction de rendu de la feuille de style XSL
function displayResult(sigle,valeur)
{
  document.getElementById("content").innerHTML='';
  xmlfile="res/test_SRFIL.xml";
  xslfile="srfil.xsl";

  // code for IE
  if (window.ActiveXObject)
  {
    // Chargement de la feuille XSLT
    var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0");
    xslDoc.async = false;
    xslDoc.load(xslfile);

    //Chargement du document XML
    var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
    xmlDoc.async = false;
    xmlDoc.load(xmlfile);

    //Transformation
    var xslt = new ActiveXObject("Msxml2.XSLTemplate.4.0");
    xslt.stylesheet = xslDoc;
    var xslProc;
    xslProc = xslt.createProcessor();
    xslProc.input = xmlDoc;
    if ( sigle != "" && valeur != "")
    {
      xslProc.addParameter("filtresigle", sigle); //passage du paramètre "field"
      xslProc.addParameter("filtrevalue", valeur);  //passage du paramètre "order"
      xslProc.addParameter("gofiltre", 1);  //passage du paramètre "order"
    }
    else
    {
      xslProc.addParameter("gofiltre", 0);  //passage du paramètre "order"
    }
    xslProc.transform();

    //Affichage du résultat
    document.getElementById("content").innerHTML=xslProc.output;
    }

  // code for Mozilla, Firefox, Opera, etc.
  else if (document.implementation && document.implementation.createDocument)
  {
    xml=loadXMLDoc(xmlfile);
    xsl=loadXMLDoc(xslfile);
    xsltProcessor=new XSLTProcessor();
    xsltProcessor.importStylesheet(xsl);

    // Si les données pour le filtrage sont fournies on transmet les paramètres
    // au fichier xsl et on autorise le filtrage
    if ( sigle != "" && valeur != "")
    {
      xsltProcessor.setParameter(null, "filtresigle", sigle);
      xsltProcessor.setParameter(null, "filtrevalue", valeur);
      xsltProcessor.setParameter(null, "gofiltre", 1);
    }
    // Sinon on désactive le filtrage
    else
    {
      xsltProcessor.setParameter(null, "gofiltre", 0);
    }
    // Rendu de l'affichage
    resultDocument = xsltProcessor.transformToFragment(xml,document);
    // Affichage dans la page web
    document.getElementById("content").appendChild(resultDocument);
  }
}


Le code est issu du site wc3school. Franchement, je ne sais pas d'où vient le pb...

si quelqu'un a une idée. Smiley cligne
apparement le pb venait du test:


    if ( sigle != "" && valeur != "") 
    { 
      xslProc.addParameter("filtresigle", sigle); //passage du paramètre "field" 
      xslProc.addParameter("filtrevalue", valeur);  //passage du paramètre "order" 
      xslProc.addParameter("gofiltre", 1);  //passage du paramètre "order" 
    } 


que j'ai changé en


    if ( sigle && valeur) 
    { 
      xslProc.addParameter("filtresigle", sigle); //passage du paramètre "field" 
      xslProc.addParameter("filtrevalue", valeur);  //passage du paramètre "order" 
      xslProc.addParameter("gofiltre", "1");  //passage du paramètre "order" 
    }


Cela fonctionne maintenant