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