Получение XML-элемента по имени в ajax responseXML?

У меня возникла проблема со сценарием AJAX, который я исправляю: устанавливается соединение AJAX, данные XML возвращаются (правильно), однако данные не отображаются правильно ни в одном браузере, кроме IE. Элементы получаются с помощью xmlData.childNodes[1], который отлично работает в IE, но в Opera, Firefox, Chrome и т. д. возвращаются данные, отличные от тех, которые возвращаются в IE. Я думаю, что IE использует другой метод индексации элементов DOM, поэтому вместо того, чтобы начинать с 0, он начинается с 1 или что-то в этом роде.

В любом случае, зная это, как я могу получить данные из элемента XML, ссылаясь на имя элемента? Если это невозможно, как мне обойти эту проблему индексации?


person Jon    schedule 04.06.2010    source источник
comment
getElementsByTagName('x') работает в DOM браузера (практически во всех браузерах). Я не уверен на 100%, работает ли он также с XML, возвращаемым запросом AJAX?   -  person Chris Lercher    schedule 04.06.2010
comment
См. stackoverflow.com/questions/ 281443/ Может помочь...   -  person Crescent Fresh    schedule 04.06.2010
comment
есть ли шанс опубликовать фактический xml вместе с тем, что вы получаете из браузера при запуске childNodes?   -  person Nathan    schedule 04.06.2010


Ответы (2)


Вы получаете что-нибудь обратно в этих других браузерах? Может быть, xml возвращается с неправильным типом mime?

Вероятно, вам лучше использовать методы селектора, а не только дочерние узлы. то есть

elements = xmldoc.getElementByTagName('tag')
element = xmldoc.getElementById('id')

Таким образом, если xml изменится в будущем, вам не нужно будет помнить, какой индекс указывает, где.

person Nathan    schedule 04.06.2010

Вы просмотрели: http://www.w3schools.com/dom/dom_nodes_access.asp

А также примеры здесь: http://www.w3schools.com/dom/dom_nodes_info.asp

person sirhc    schedule 04.06.2010