Wurzelzwerg: getElementsByTagName im IE6

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

  1. 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

    1. 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

      1. 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

        1. 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

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]