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");
}
}