2010-06-04 97 views
1

我遇到了一个我正在修复的AJAX脚本问题 - 正在建立AJAX连接,XML数据被返回(正确),但是在除IE以外的任何浏览器中数据都没有正确显示。元素是通过使用xmlData.childNodes [1]获得的 - 在IE中可以正常工作,但在Opera,Firefox,Chrome等中,返回的数据不同于IE中返回的数据。我认为IE使用了一种不同的索引DOM元素的方法,所以不是从0开始,而是从1开始,或者沿着这些行开始。

无论如何,知道 - 我怎样才能通过引用元素的名称从XML元素获取数据?如果这是不可能的,我该如何解决这个索引问题?在ajax responseXML中通过名称获取XML元素?

+0

'getElementsByTagName('x')'在浏览器DOM上工作(基本上在所有浏览器中)。我不是100%确定,如果它也适用于AJAX请求返回的XML? – 2010-06-04 02:07:56

+0

请参阅http://stackoverflow.com/questions/281443/inconsistent-whitespace-text-nodes-in-internet-explorer可能会有所帮助... – 2010-06-04 02:12:03

+0

发布实际XML的任何机会,以及您的回报从浏览器运行childNodes时? – Nathan 2010-06-04 05:05:44

回答

2

你在那些其他浏览器得到任何东西回来?也许xml会返回错误的MIME类型?

你最好使用选择器方法而不是仅仅是childNodes。即

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

这样,如果xml在未来发生变化,您将不必记住哪个索引指向哪里。