2010-12-12 14 views
0

Ich habe vor kurzem gelernt, wie Sie die Ausgabe mit SimpleXML in PHP formatieren. Sie fügen nur die Zeile hinzu $xml->formatOutPut = true; Aber wenn ich es gemacht habe, können die Javascripts, die ich geschrieben habe, das XML nicht analysieren. Ich benutze, um die formatOutPut Linie zu deaktivieren, so dass die XML unformatiert in einer Zeile geschrieben werden. Wenn ich die Formatzeile ablehne, kann Javascript das XML analysieren. Wirklich seltsam. Gibt es eine Möglichkeit, die Formatzeile in PHP nicht zu deaktivieren?

Antwort

0

Wie parsen Sie die XML mit Javascript?
Wenn das Problem die formatierte Ausgabe ist, denke ich, dass Sie Methoden/Sammlungen verwenden, die auch textNodes (z. B. childNodes) verarbeiten. Wenn dies der Fall ist, müssen Sie Ihr Javascript so ändern, dass es textNodes überspringt, die nur whiteSpaces enthalten (jQuery könnte dies beispielsweise für Sie tun).

+0

Ich parse das XML mit "var xmlDoc = xmlhttp.responseXML;". und verwenden Sie die getElementsByTagName() -Methode, um alle Knoten abzurufen. Du sagst also, dass die whiteSpaces den Fehler verursachen? Können Sie einige Methoden in Javascripts geben, um dieses Problem zu lösen? Ich möchte nicht JQuery verwenden – einstein

+0

getElementsByTagName sollte keine Probleme mit Withespaces haben, behandelt nur Element-Knoten. Kannst du deinen Javascript-Parser zeigen, um das Problem zu bestimmen? –

+0

xmlhttp = neuer XMLHttpRequest(); \t xmlhttp.open ("GET", "serverScripts/contacts/showContactList.php", false); \t xmlhttp.send(); \t \t var xmlDoc = xmlhttp.responseXML; \t var root = xmlDoc.getElementsByTagName ('Kontakte'); Dann bekomme ich den XMl nodeValue durch diese Javascript-Codes. Die erste fehlgeschlagene Zeile lautet: . . . var profileId = root [0] .childNodes [i] .getAttribute ('profileId'); \t \t var profileMiniature = root [0] .childNodes [i] .getAttribute ('profileMiniature'); – einstein