Hallo,
hab ein Problem mit XML/XSLT. Bin da noch Anfänger.
Habe in meiner HTML-Datei über einen XSL-Transformer
eine XML-Datei eingebunden. Im IE läuft es auch wunderbar.
Aber im Netscape, usw. läuft es nicht. Was muss ich machen,
wenn ich eine XML- und XSL-Datei einbinden möchte und wie
kann ich sie dann transformieren, sodass Netscape es versteht.
Hier eine HTML Datei die im IE und im Mozilla funktioniert. Andere Browser habe ich nicht getestet.
Das einzige was du am Code ändern musst, ist den Namen für deine XML und XSL Datei richtig eintragen (ich habe aber die Namen genommen, die du bereits benutzt hast).
Grüße
Thomas
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>XML und XSLT in HTML mit Javascript einfügen</title>
<script language="JavaScript" type="text/javascript">
<!--
var XMLDatei = "XMLFile.xml"; // hier muss man die XML Datei angeben
var XSLDatei = "XSLFile.xsl"; // hier muss man die XML Datei angeben
var XMLEingabe;
var XSLEingabe;
var HTMLAusgabe;
function transform()
{
// abfrage für den Internet Explorer
if(document.all)
{
// 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("ausgabe").innerHTML = HTMLAusgabe;
}
// abfrage für Mozilla
else if(document.defaultView)
{
// im Mozilla 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);
// XML laden
myXMLHTTPRequest = new XMLHttpRequest();
myXMLHTTPRequest.open("GET", XMLDatei, false);
myXMLHTTPRequest.send(null);
XMLEingabe = myXMLHTTPRequest.responseXML;
// generierten HTML-Code ausgeben
HTMLAusgabe = xsltProcessor.transformToFragment(XMLEingabe, document);
document.getElementById("ausgabe").appendChild(HTMLAusgabe);
}
else
{
alert("keine Unterstützung für XML/XSL TRansformation");
}
}
//-->
</script>
</head>
<body onload="transform()">
<h1>XML und XSLT in HTML mit Javascript einfügen</h1>
<hr>
<div id="ausgabe"></div>
<hr>
</body>
</html>