XML -> PHP -> Javascript / Javascript kann responseText nicht bearbeiten

C3000

Mitglied
Hallo

Ich mache seit 6 Tagen ein Praktikum und muss nun mit Javascript und PHP ähnliche Funktionen wie auf netvibes.com realisieren.

Nun mein Problem.
Ein PHP-Script holt mir von externen Servern XML- Dateien. Jedoch muss ich das durch einen Proxy machen. Somit sieht die PHP- Datei so aus:
Code:
<?php 
    $url = $_GET['url'];
    $proxy = "proxy.xxx.com";
    $port = 80;
    $fp = fsockopen($proxy, $port);
    fputs($fp, "GET $url HTTP/1.0\r\nHost: $proxy\r\n\r\n");
    header("Content-Type: text/html");
    while(!feof($fp)){
        $line = fgets($fp,4000);
        $i = $i + 1;
        if($i > 10){
            echo($line);
        }
    }
    fclose($fp);
?>

Per responseText erhalte ich nun die XML-Datei.
HIernach versuche ich den responseText in ein XMLDocument zu parsen. Dieses ist zwar vorhanden, aber es hat keinen Wert. Hier der Code:
Code:
var xml;
                    if (window.ActiveXObject) {
                        xml = new ActiveXObject("Microsoft.XMLDOM");
                        xml.loadXML(o.responseText);
                    } else{
                        xml = (new DOMParser()).parseFromString(o.responseText, "text/xml");
                    }
                    alert(xml);
                    var wurzel = xml.getElementsByTagName("xml")[0].firstChild.nodeValue;
                    if (wurzel == null) {
                        alert("Kein Wurzelelement gefunden");
                    }
                    else {
                        alert("Wurzelelement: " + wurzel.nodeName);
                    }

Ich hoffe mir kann jemand helfen. Bin schon seit 3 Stunden auf der suche nach einer Lösung, aber ich finde einfach nichts.

Danke schon mal im voraus.

P.S. Ich habe vor 6 Tagen auch zum ersten mal Javascript geschrieben. Also bitte habt nachsicht.
 
Zuletzt bearbeitet:
Ich bin mir nicht 100% sicher, aber wenn ich mich nicht täusche, kann der IE per loadXML() nur gültige XML-Dokumente verarbeiten, und diese müssen ihm als document-Objekt vorliegen.

responseText liefert im Gegensatzt zu responseXML jedoch kein Objekt, sondern einen String.
 
Sers

Hab das ganze nun so gelöst:

Ich kürze mir mit subString die Header Infos aus dem String raus und parse den String in ein XML- Objekt.

Code:
if (window.ActiveXObject){
    var xml = new ActiveXObject("Microsoft.XMLDOM").loadXML(o.responseText);
}
else{
    var xml = new DOMParser().parseFromString(o.responseText,"text/xml");
}

Mfg
 

Neue Beiträge

Zurück