2010-12-12 3 views
0

Недавно я научился форматировать вывод с помощью simpleXML в PHP. Вы просто добавляете строку $xml->formatOutPut = true; Но когда я это сделал, javascripts, который я написал, не может разобрать XML. Я использую, чтобы отказаться от строки formatOutPut, поэтому XML написан неформатирован в одной строке. Когда я отказываюсь от строки формата, javascript может анализировать XML. Действительно странно. Есть ли способ не отказаться от строки формата в PHP?

ответ

0

Как вы анализируете XML с помощью javascript?
Если проблема в форматированном выходе, я думаю, вы используете методы/коллекции, которые также обрабатывают textNodes (например, дочерниеNodes). Если это так, вам нужно изменить свой javascript таким образом, чтобы он пропускал текстовые ноды, которые содержат только whiteSpaces (например, jQuery может сделать это для вас).

+0

Я анализирую XML с помощью «var xmlDoc = xmlhttp.responseXML;». и используйте метод getElementsByTagName(), чтобы получить все узлы. Итак, вы говорите, что белые пробелы вызывают ошибку? Можете ли вы дать некоторые методы в javascripts для решения этой проблемы? Я не хочу использовать JQuery – einstein

+0

getElementsByTagName не должен иметь проблем с withespaces, он обрабатывает только узлы-элементы. Можете ли вы показать свой javascript-парсер, чтобы определить проблему? –

+0

xmlhttp = new XMLHttpRequest(); \t xmlhttp.open ("GET", "serverScripts/contacts/showContactList.php", false); \t xmlhttp.send(); \t \t var xmlDoc = xmlhttp.responseXML; \t var root = xmlDoc.getElementsByTagName ('contacts'); Затем я получаю XMl nodeValue через эти коды javascript. Первая неудавшаяся строка: . . . var profileId = root [0] .childNodes [i] .getAttribute ('profileId'); \t \t var profileMiniature = root [0] .childNodes [i] .getAttribute ('profileMiniature'); – einstein

Смежные вопросы