Sandra: Wie XML per JS im IE verarbeiten?

Hallo ihr,

ich versuche grad ne Webapplikation auf AJAX umzustellen und muss dazu natürlich ein XML-Dokument verarbeiten. Bisher mache ich das so:

...
var xmlDoc = request.responseXML;
var xmlRoot = xmlDoc.firstChild;
var myAttribute = xmlRoot.getAttribute("test");
...

Funktioniert auch einwandfrei im Firefox. Nur der IE macht da nicht mit. Bei ihm ist xmlRoot "null" und somit "getAttribute("test")" nicht möglich. Meine Frage lautet also: wie verarbeite ich XML im IE? Anscheinend nicht mit den DOM-Methoden wie im FF. Gibts irgendwo ne API für die Verarbeitung im IE. Vielleicht bin ich zu dumm, aber ich find im Netz nichts entsprechendes...

Liebe Grüße,
Sandra

  1. Hallo ihr,

    Hallo Du,

    Funktioniert auch einwandfrei im Firefox. Nur der IE macht da nicht mit. Bei ihm ist xmlRoot "null" und somit "getAttribute("test")" nicht möglich. Meine Frage lautet also: wie verarbeite ich XML im IE? Anscheinend nicht mit den DOM-Methoden wie im FF.

    Das DOM ist schon dasselbe, aber der IE braucht ein ActiveX-Objekt, um XML einlesen zu können.

    Liebe Grüße,
    Sandra

    lg
    ID

    1. Das DOM ist schon dasselbe, aber der IE braucht ein ActiveX-Objekt, um XML einlesen zu können.

      Hmm, ich glaub schon dass ich das richtig mache, oder? Nämlich so:

      AjaxRequest.getXmlHttpRequest = function() {
          if (window.XMLHttpRequest) {
       alert("0");
              return new XMLHttpRequest();
          }
          else if (window.ActiveXObject) {
              // Based on http://jibbering.com/2002/4/httprequest.html
              /*@cc_on @*/
              /*@if (@_jscript_version >= 5)
              try {
                  alert("1");
                  return new ActiveXObject("Msxml2.XMLHTTP");
              } catch (e) {
                  try {
                   alert("2");
                      return new ActiveXObject("Microsoft.XMLHTTP");
                  } catch (E) {
                   alert("3");
                      return null;
                  }
              }
              @end @*/
          }
          else {
       alert("4");
              return null;
          }
      };

      Beim IE wird hier zuerst "1" ausgegeben. Also sollte ich schon ein ActiveXObject habe, oder???

  2. Tach Sandra,

    Nur der IE macht da nicht mit. Bei ihm ist xmlRoot "null" und somit "getAttribute("test")" nicht möglich. Meine Frage lautet also: wie verarbeite ich XML im IE? Anscheinend nicht mit den DOM-Methoden wie im FF.

    Das sollte grundsätzlich analog funktionieren, allerdings nicht beim file-Zugriff auf lokale Ressourcen. In diesem Fall bietet sich die Abfrage von responseStream an.

    Man liest sich,
    svg4you

  3. Hi,

    ich versuche grad ne Webapplikation auf AJAX umzustellen und muss dazu natürlich ein XML-Dokument verarbeiten. Bisher mache ich das so:

    ...
    var xmlDoc = request.responseXML;
    var xmlRoot = xmlDoc.firstChild;
    var myAttribute = xmlRoot.getAttribute("test");
    ...

    Welchen Content-Type liefert der Server für die per AJAX angeforderte Ressource?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hi,

      hätte dein Posting fast übersehen. Der Server liefert text/xml, also schon das richtige. Das Problem war, dass ich vom XML-Document mit firstChild zur Root wollte. Beim FF gings, IE hat den XML header als firstChild interpretiert. Sorry, mein Fehler. DANKE für eure Mühen.

      Sandra