Niko: XML String -> DOM

Beitrag lesen

Hi,

Ich versuche gerade aus einer XML Datei mittels Javascript ein paar Informationen auszulesen! Das funktioniert auch ganz gut, zumindest im Firefox 3 und Opera 9.5. Der IE macht leider wieder was er will:

Also mal Schritt für Schritt. Ich bekomme über AJAX einen String, der den Inhalt einer XML-Datei enthält. Daraus lösche ich erstmal den Kopf, also dieses <?xml .... ?> und versuche den restlichen String in einen DOM-Knoten umzuwandeln, indem ich zb. ein DIV-Element erzeuge, den String als innerHTML einfüge und dann die childNodes auslese.

  
function string2DOM(string)  
  var container = new Element('div', {  
   'html': string  
  });  
  //Whitespace entfernen  
  for (var i=0; i<container.childNodes.length; i++)  
  {  
   var node = container.childNodes[i];  
      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))  
         node.dispose(); //Dispose ist ne Mootools Funktion, die das Element entfernt  
    }  
  if(container.childNodes.length == 1)  
  {  
   return container.childNodes[0].dispose();  
  }  
  else  
  {  
   var array = new Array();  
   for(var i = 0; i < container.childNodes.length; i++)  
   {  
    array.push(container.childNodes[i]);  
   }  
    }  
  return array;  
 }  

Das Problem dabei ist, dass die XML-Datei nicht nur HTML-Gültige Tags, sondern auch sowas wie <layout> oder so enthält, die leider vom IE7 einfach nicht beachtet werden. Aus einem String:

<layout>  
    <markup>  
        <div>  
            <p></p>  
        </div>  
    </markup>  
<layout>

wird beim IE

<div>  
    <p></p>  
</div>

Gibt es irgendeine Möglichkeit das zu umgehen oder den String irgendwie anders in einen DOM Knoten zu verwandeln?

Mit der XML-Rückgabe von AJAX kann ich bis jetzt nichts anfangen, weil ich Mootools (http://www.mootools.net) verwende und die Element-Funktionen davon nur auf DOM-Elemente und nicht auf diese XML-Rückgabe funktionieren!

MfG Niko