Bonjour,
Je tente de programmer une fonction qui recherche dans un fichier XML les données propres à l'image affichée dans une galerie via XMLHttprequest et ActiveX. J'ai essayé de multiples variantes, toutes fonctionnent sous Firefox 
  
Avez-vous une idée de la raison qui empêche IE d'appliquer ma transformation ?
PS je déplacerais volontiers le message dans le forum Ajax mais je sais comment le faire après validation.
Modifié par deca05 (11 Aug 2009 - 11:14)
      
      
    Je tente de programmer une fonction qui recherche dans un fichier XML les données propres à l'image affichée dans une galerie via XMLHttprequest et ActiveX. J'ai essayé de multiples variantes, toutes fonctionnent sous Firefox
 
  Avez-vous une idée de la raison qui empêche IE d'appliquer ma transformation ?
PS je déplacerais volontiers le message dans le forum Ajax mais je sais comment le faire après validation.
function request01(photo) {
var xml = "galerie.xml";
var xsl = "galerie.xsl";
var target = document.getElementById("metadata");
	try {
	  if (window.XSLTProcessor && window.XMLHttpRequest)
	  {
		  var xmlDoc;
		  var xslStylesheet;
		  var xsltProcessor = new XSLTProcessor();
		  // load the xslt file, galerie.xsl
		  var myXMLHTTPRequest = new XMLHttpRequest();
		  myXMLHTTPRequest.open("GET", xsl, false);
		  myXMLHTTPRequest.send(null);
		  xslStylesheet = myXMLHTTPRequest.responseXML;
		  xsltProcessor.importStylesheet(xslStylesheet);
		  
		  // Afficher les informations de l'image appelee dans le parametre de la fonction request
		  
	      xsltProcessor.setParameter(null,"nomImage",photo);
		  // load the xml file, galerie.xml
		  myXMLHTTPRequest = new XMLHttpRequest();
		  myXMLHTTPRequest.open("GET", xml, false);
		  myXMLHTTPRequest.send(null);
		  xmlDoc = myXMLHTTPRequest.responseXML;
		  var doc = xsltProcessor.transformToDocument(xmlDoc);
		  var xmls = new XMLSerializer();
		  target.innerHTML = xmls.serializeToString(doc);
	  // ActiveX pour Internet Explorer
	  } else if (window.ActiveXObject) {
 	    var xmlDoc = null;
 	    var xslDoc = null;
		
            var xslStylesheet = null;
		
            var xsltProcessor = null;
		
		try {
		  xmlDoc = new ActiveXObject("MSXML2.DOMDocument") ;
		} catch (e) {
		  xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
		}
		try {
		  xslDoc = new ActiveXObject("MSXML2.FreeThreadedDOMDocument") ;
		} catch (e) {
		  xslDoc = new ActiveXObject('Microsoft.XMLDOM');
		}
		xmlDoc.async = false;
		xmlDoc.load(xml);
		xslDoc.async = false;
		xslDoc.load(xsl);
		//Transformation
		var xslStylesheet = new ActiveXObject("MSXML2.XSLTemplate");
		
		xslStylesheet.stylesheet = xslDoc; 
		xsltProcessor = xslStylesheet.createProcessor(); 
		
		xsltProcessor.input = xmlDoc;
		
		xsltProcessor.addParameter("nomImage",photo); 
		
		xsltProcessor.transform();
		
		// xsltProcessor.output est vide !
		//alert("resultat : "+xsltProcessor.output);
		target.innerHTML = "Les métadonnées ne sont pas affichées sous Internet Explorer !";//xsltProcessor.output;
	  }
	} catch (e) {
	  return e;
	}
}Modifié par deca05 (11 Aug 2009 - 11:14)