StyloMilo: XML-Datei inkl XSL-Transformation in HTML-Dokument ausgeben

Beitrag lesen

Schönen guten Tag zusammen,

nachdem wieder mal ein ganzer Tag ins Land gegangen ist,
ohne dass ich wirklich produktiv war, hoffe ich, dass
Ihr mir helfen könnt. Ich möchte ein XML-Dokument als
Tabelle innerhalb einer HTML-Seite im angegebenen DIV-
Element ausgeben. Funktioniert in IE und FF auch
einwandfrei, nur der Opera zickt rum, dass alles zu spät
ist und zeigt absolut nichts. Wäre toll, wenn Euch was
dazu einfällt.

Hier die Funktion, die die XML/XSL-Datei einbetten soll.
Die Stelle, an der Opera nicht weiterkommt ist markiert:

function transform(divFuerAusgabe, XMLDatei, XSLDatei)
{
var XMLEingabe;
var XSLEingabe;
var HTMLAusgabe;

// Abfrage für den Internet Explorer
if(window.clipboardData && document.compatMode)
  {
   // XML laden
   XMLEingabe = new ActiveXObject("MSXML2.DOMDocument");
   XMLEingabe.async = false;
   XMLEingabe.load(XMLDatei);

// XSL laden
   XSLEingabe = new ActiveXObject("MSXML2.DOMDocument");
   XSLEingabe.async = false;
   XSLEingabe.load(XSLDatei);

// generierten HTML-Code ausgeben
   HTMLAusgabe = XMLEingabe.transformNode(XSLEingabe.documentElement);
   document.getElementById(divFuerAusgabe).innerHTML = HTMLAusgabe;
  }

// Abfrage für Firefox & Opera
else if(document.defaultView)
  {
   // erst XSL laden
   var xsltProcessor = new XSLTProcessor();
   var myXMLHTTPRequest = new XMLHttpRequest();
   myXMLHTTPRequest.open("GET", XSLDatei, false);
   myXMLHTTPRequest.send(null);

XSLEingabe = myXMLHTTPRequest.responseXML;
   xsltProcessor.importStylesheet(XSLEingabe);

// dann XML laden
   myXMLHTTPRequest = new XMLHttpRequest();
   myXMLHTTPRequest.open("GET", XMLDatei, false);

hier steigt Opera aus, tut nichts mehr. Test mit nem alert(): vor
send(null) gibt er was aus, danach nicht mehr. Keine Fehlermeldung.

myXMLHTTPRequest.send(null);

XMLEingabe = myXMLHTTPRequest.responseXML;

// generierten HTML-Code ausgeben
   HTMLAusgabe = xsltProcessor.transformToFragment(XMLEingabe, document);
   document.getElementById(divFuerAusgabe).appendChild(HTMLAusgabe);
  }
else
  {
   alert("keine XML/XSL Transformation möglich");
  }
}