Hey,
aber dies funktioniert im IE nur, wenn ich keine Sonderzeichen wie ° o.ä. benutze, obwohl ich meiner Meinung nach den richtigen Zeichencode in der XML-Datei verwende. (encoding="ISO-8859-1") Habt ihr 'ne Idee?
es wäre toll, wenn du das ganze genauer beschreiben würdest, ohne Gedankenlesen kann man nämlich nur raten, was bei dir passiert.
Was ist "dies"? Beschreibe zunächst dein Vorhaben in Worten. Was machst du? Was erhältst du? Was erwartest du tatsächlich?
Dann zeige Quellcode und Beispieleingabedaten, so dass wir deinen Code auf Korrektheit prüfen können und ob damit das Vorhaben tatsächlich wie beabsichtigt umgesetzt wurde.
In FF speichert die Eigenschaft responseXML den Elementbaum der XML-Datei, wogegen die Eigenschaft in IE leer ist bzw. keine Elemente enthält. Mit dem o.g. Workaround kann ich auch unter IE die XML-Daten über node ansteuern, jedoch geht das nur, wenn keine "extravaganten" Sonderzeichen vorhanden sind. Ich benutze den Zeichensatz ISO-8859-1 in der XML-Datei, der ja eigentlich Sonderzeichen unterstützen sollte (wie gesagt, in FF tut er das).
Mein Code:
function getHttpObject() {
var xmlHttp = false;
// Mozilla, Opera, Safari sowie Internet Explorer 7
if(typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
if(!xmlHttp) {
// Internet Explorer 6 und älter
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = false;
}
}
}
return xmlHttp;
}
function getXmlData(file) {
if(http) {
http.open('GET', file, true);
http.onreadystatechange = function () {
if(http.readyState == 4) {
var xmlObj = http.responseXML;
if(xmlObj.childNodes.length == 0) {
xmlObj = new ActiveXObject("Msxml2.DOMDocument");
xmlObj.loadXML(http.responseText);
}
alert(xmlObj.hasChildNodes());
}
};
http.setRequestHeader("Content-Type", "text/xml");
http.send(null);
}
}