Daten aus XML on PHP mit JavaScript auslesen

  • Servus.
    Ich habe gerade folgendes Problem:

    Mittels AJAX wird vom Server eine XML Datei abgefragt, die zB so aussieht:

    PHP
    header('Content-Type:text/xml');
    echo '<?xml version="1.0" encoding="utf-8"?><data><info>Hallo Welt</info></data>';

    Mittels JavaScript nehme ich die Datei über handler.responseXML entgegen und speichere es in der Variable xData und versuche den Wert von <info> herauszufinden:

    Code
    alert(xData.getElementsByTagName("info")[0].nodeValue);

    alert() gibt hier aber "null" zurück...
    Ich habe es bereits mit .value, .innerHTML, .innerText statt .nodeValue probiert, aber da erhalte ich immer "undefined".
    Seltsamerweise funktioniert aber .nodeName und gibt erwartungsgemäßg "info" zurück. Nur mit dem Wert klappt es nicht...

    Hat da jemand bitte eine Idee was ich falsch mache?
    Danke ;)

  • Wenn du den Text in einem XML-Element auslesen willst, musst du erst in den Textknoten wechseln:

    Code
    xData.getElementsByTagName("info")[0].firstChild.nodeValue


    Ansonsten: Versuch mal die Rückgabe als Plain-Text und nicht als XML auszulesen und gib sie dir aus. Vielleicht ist da ja ein Fehler.
    Vielleicht liegt es auch an der Zeichencodierung. Du musst das PHP-Dokument und das JavaScript als UTF8 speichern, im Header die Codierung mitschicken und in XML explizit angeben.

    Ferndiagnosen sind immer schwer. Hast du nen Link für uns?

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Wenn du den Text in einem XML-Element auslesen willst, musst du erst in den Textknoten wechseln:

    Code
    xData.getElementsByTagName("info")[0].firstChild.nodeValue


    Ansonsten: Versuch mal die Rückgabe als Plain-Text und nicht als XML auszulesen und gib sie dir aus. Vielleicht ist da ja ein Fehler.
    Vielleicht liegt es auch an der Zeichencodierung. Du musst das PHP-Dokument und das JavaScript als UTF8 speichern, im Header die Codierung mitschicken und in XML explizit angeben.

    Ferndiagnosen sind immer schwer. Hast du nen Link für uns?

    Danke. Ich werde mal versuchen im Header noch eine UTF-8 Kodierung mitzuschicken.
    Das Teil mit dem firstChild habe ich bereits versucht und es hat nicht geklappt.
    Jedenfalls habe ich das ganze jetzt eben über Plain-Text gelöst, ist zwar nicht so elegant, aber es funktioniert auch.