getElementsByTagName im IE6
Wurzelzwerg
- xml
0 Axel Richter0 Axel Richter0 Wurzelzwerg0 Ashura
Hallo allerseits,
ich beschäftige mich gerade mit Ajax und habe ein Problem beim Analysieren einer übergebene XML-Datei. Folgender Code funktioniert zwar im Mozilla, aber im IE6 kriege ich in meiner Test-Alert-Box ein "null" und demzufolge funktioniert der Rest nicht. Kann mir da jemand weiterhelfen?
var vornameNode = http_request.responseXML.getElementsByTagName("vorname")[0];
alert(vornameNode);
var vornameTextNode = vornameNode.childNodes[0];
var vorname = vornameTextNode.nodeValue;
document.getElementById('test').firstChild.data = vorname;
document.getElementById("test").style.display = "block";
vielen Dank schonmal für die Hilfe ;-)
Hallo,
ich beschäftige mich gerade mit Ajax und habe ein Problem beim Analysieren einer übergebene XML-Datei. Folgender Code funktioniert zwar im Mozilla, aber im IE6 kriege ich in meiner Test-Alert-Box ein "null" und demzufolge funktioniert der Rest nicht. Kann mir da jemand weiterhelfen?
var vornameNode = http_request.responseXML.getElementsByTagName("vorname")[0];
alert(vornameNode);
Was ergibt ein
alert(http_request.responseXML.getElementsByTagName("vorname").length);
an dieser Stelle?
Sollte das im Mozilla 1 und im IE 0 ergeben, könnte es daran liegen, dass die Ressource, die per Ajax angefordert wurde, vom Server nicht im Content-Type: text/xml ausgeliefert wird. Der IE kann responseXML nur auf wirkliche text/xml-Dokumente anwenden. Mozilla kann das auch z.B. bei Dokumenten mit Content-Type: application/xhtml+xml.
viele Grüße
Axel
Hallo,
ich beschäftige mich gerade mit Ajax und habe ein Problem beim Analysieren einer übergebene XML-Datei. Folgender Code funktioniert zwar im Mozilla, aber im IE6 kriege ich in meiner Test-Alert-Box ein "null" und demzufolge funktioniert der Rest nicht. Kann mir da jemand weiterhelfen?
var vornameNode = http_request.responseXML.getElementsByTagName("vorname")[0];
alert(vornameNode);Was ergibt ein
alert(http_request.responseXML.getElementsByTagName("vorname").length);
an dieser Stelle?
Sollte das im Mozilla 1 und im IE 0 ergeben, könnte es daran liegen, dass die Ressource, die per Ajax angefordert wurde, vom Server nicht im Content-Type: text/xml ausgeliefert wird. Der IE kann responseXML nur auf wirkliche text/xml-Dokumente anwenden. Mozilla kann das auch z.B. bei Dokumenten mit Content-Type: application/xhtml+xml.
Ein weiterer Grund kann sein, dass Deine XML-Ressource Zeichen enthält, die nicht in US-ASCII enthalten sind:
Bspw:
<vorname>René</vorname>
Der Standard Content-Type für XML ist UTF-8. Sollte die oben angegebene XML-Ressource als ANSI oder ISO-8859-1 gespeichert sein (é = xE9), dann erzeugt der IE hier einen Fehler.
Abhilfe schafft das Speichern der Ressource als UTF-8 (é = xC3A9) oder das Mitliefern einer XML-Deklaration mit dem encoding.
<?xml version="1.0" encoding="ISO-8859-1"?>
<vorname>René</vorname>
Natürlich muss diese Ressource dann zwingen als ISO-8859-1 gespeichert sein (é = xE9).
viele Grüße
Axel
Vielen Dank schonmal,
es lag wohl am Server. Als ich es auf meinem "richtigen" Server im Internet getestet habe, da hat es funktioniert. Als nächstes knobele ich, wie ich die XML-Datei per PHP erzeugen kann. Da kommen bestimmt auch noch Fragen ;-)
viele Grüße
Hallo Wurzelzwerg.
Als nächstes knobele ich, wie ich die XML-Datei per PHP erzeugen kann.
Da du mit DOM in JS Erfahrung haben dürftest, solltest du dir das Pendant in PHP anschauen.
Einen schönen Sonntag noch.
Gruß, Ashura