Spider: responseXML Unterschied im IE und FF?

Beitrag lesen

Ich habe mich nochmal ein wenig auf die Suche gemacht und bin fündig geworden. Leider gibt es wohl keinen Weg, responseXML im IE zu nutzen. Aber man kann über einen Umweg responseText in ein gültiges XML umwandeln.

Zuerst erstellt man ein beliebiges Tag, gibt dem eine eindeutige ID und schreibt mit innerHTML den responseText rein. Anschließend häng man das Ganze ins Dokument und entfernt das erstellte Tag wieder.

function GET(URI, absPath, FileName)
{
        this.req = createXMLHttpRequest();

this.cb = (function()
        {
                var req = this.req;

if (req.readyState == 4)
                {

var xmlDoc = null;
                var type = null;

//Wenn es kein IE ist
                if (document.implementation && document.implementation.createDocument)
                {
                        xmlDoc = req.responseXML;
                        type = xmlDoc.getElementsByTagName("Tags")[0].getAttribute("format");
                //Wenn er es ist
                }
                else if (window.ActiveXObject)
                {

var toAppend = document.createElement('xml');
                        //Packe den responseText in das innerHTML
                        toAppend.setAttribute('innerHTML',req.responseText);

//Damit man es wiederfindet, eine eindeutige ID
                        toAppend.setAttribute('id','_MakeAUniqueID');
                        //Häng das ganze irgendwo rein
                        document.body.appendChild(toAppend);

//Suche den XML Zweig anhand der ID und schreib ihn in xmlDoc
                        xmlDoc = document.getElementById('_MakeAUniqueID');
                        type = xmlDoc.getElementsByTagName("Tags")[0].getAttribute("format");

//Abschließend kann man das Tag auch wieder entfernen
                        document.body.removeChild(document.getElementById('_MakeAUniqueID'));

}
                else
                {
                //If the browser doesnt support xml
                alert('Your browser can't handle this script');
                }

createOutput(xmlDoc, type, absPath, FileName);

}
        }).bind(this);
        clear('log');
        this.req.onreadystatechange = this.cb;
        this.req.open('GET', URI, true);
        this.req.send(null);
}

Gruß Spider