2010-12-12 3 views
0

J'ai récemment appris à formater la sortie avec PHP simple. Vous ajoutez simplement la ligne $xml->formatOutPut = true; Mais quand je l'ai fait, les javascripts que j'ai écrits ne peuvent pas analyser le XML. J'utilise pour désactiver la ligne formatOutPut, de sorte que les XML sont écrits non formatés sur une ligne. Lorsque je désactive la ligne de format, le javascript peut analyser le XML. Vraiment bizarre. Y at-il un moyen de ne pas désactiver la ligne de format en PHP?

Répondre

0

Comment analyser le XML avec javascript?
Si le problème est la sortie formatée, j'imagine que vous utilisez des méthodes/collections qui gèrent aussi textNodes (childNodes par exemple). Si c'est le cas, vous devez modifier votre javascript de cette façon, qu'il ignorera les textNodes qui contiennent uniquement des whiteSpaces (jQuery par exemple pourrait le faire pour vous).

+0

J'analyse le XML avec "var xmlDoc = xmlhttp.responseXML;". et utilisez la méthode getElementsByTagName() pour obtenir tous les nœuds. Donc vous dites que les whiteSpaces provoquent l'erreur? Pouvez-vous donner quelques méthodes dans javascripts pour résoudre ce problème? Je ne veux pas utiliser JQuery – einstein

+0

getElementsByTagName ne devrait pas avoir de problèmes avec les espaces, il ne gère que les éléments-nœuds. Pouvez-vous montrer votre javascript-parser pour déterminer le problème? –

+0

xmlhttp = new XMLHttpRequest(); \t xmlhttp.open ("GET", "serverScripts/contacts/showContactList.php", false); \t xmlhttp.send(); \t \t var xmlDoc = xmlhttp.responseXML; \t var racine = xmlDoc.getElementsByTagName ('contacts'); Ensuite, je reçois le XMl nodeValue grâce à ces codes javascript. La première ligne qui échoue est: . . . Var profileId = root [0] .childNodes [i] .getAttribute ('profileId'); \t \t var profileMiniature = root [0] .childNodes [i] .getAttribute ('profileMiniature'); – einstein