2009-05-22 16 views
0

Ich lade etwas XML über Ajax.Prozess-XML über Ajax mit E4X zurückgegeben?

hier ist ein Ausschnitt aus dem Skript:

ajaxRequest.onreadystatechange = function() 
    { 
     if(ajaxRequest.readyState == 4) 
     { 
      document.getElementById('loading').innerHTML = 'done'; 
      google_xml = ajaxRequest.responseXML; 
      document.getElementById('xml').innerHTML = 'XML: '+google_xml.toXMLString(); 
     } 
    } 

Die Seite, die ich lade bin, ist eine XML-Datei, die Datei geladen wird, weil, wenn ich alert (ajaxRequest.responseText); Ich sehe es. Aber ich bin mir nicht sicher, wie ich es als XML verarbeiten soll. Ich dachte, das obige Skript würde das XML als String in das <10 div id = "xml"> </div> -Element einfügen, aber das tut es nicht.

Ich habe E4X verwendet, um XML in Actionscript viel zu verarbeiten, aber nie in JS, kann mir jemand einen Hinweis geben? Vielen Dank!

Antwort

3

Ich bin mir nicht sicher, welchen Browser Sie verwenden, aber Firefox is currently the only browser with good support for E4X.

Obwohl auf diese Antwort zu erweitern, können Sie sich der Alternative sein wollen:

Es gibt viel Unterstützung für XML im Browser-Parsing, nur nicht mit E4X. Vielleicht möchten Sie die jQuery verwenden und dataType: XML verwenden. Siehe xml.com/pub/a/

+0

Wirklich? das ist beschissen..es ist egal, in welchem ​​Browser ich bin, dies ist für meine Benutzer nicht für mich ... das bringt eine große Delle in meine ganze Anwendung. :( –

+1

Es gibt viel Unterstützung für die Analyse von XML im Browser, nur nicht mit E4X. Vielleicht möchten Sie die jQuery und verwenden Sie dataType: XML. Siehe http://www.xml.com/pub/a/2007/10 /10/jquery-and-xml.html – cgp

0

Verwenden Sie einfach xhr.responseXML, das bereits ein XML-Objekt mit DOM-Unterstützung ist, nachdem die Anforderung erfüllt ist. Wenn der Browser das XmlHttpRequest-Objekt unterstützt, sollte dies direkt funktionieren. Auch IIRC, Sie können jQuery verwenden, um das Objekt zu umbrechen und eigene Methoden zum Suchen des Objekts zu verwenden.

1

Für diejenigen, die nach dieser gleichen Frage folgen:

var x = new XML ('<xml> String-Wert </xml >');

... jetzt ist Ihr x-Wert ein XML-Objekt, das Sie mit E4X manipulieren können!