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 Smiley cligne

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)