多年来,我一直在努力实现一种强大的独立于浏览器的方法来在 javascript 中加载和导航(使用 xpath)xml 文件;特别是在 IE 方面。
我感兴趣地阅读了(参考: http: //msdn.microsoft.com/en-us/library/ie/ms534370 (v=vs.85).aspx - 导致http://blogs.msdn的备注段落.com/b/ie/archive/2012/07/19/xmlhttprequest-responsexml-in-ie10-release-preview.aspx),IE 不久前开始支持XMLHttpRequest(IE8 或 9),但.responseXML仍然返回一个MSXML对象而不是原生 XML 对象。在 IE10 中,它可能会或可能不会返回本机 XML 对象。
此外,我还发现,如果我碰巧有一个 ActiveX 版本(其中 doc 可能是也可能不是 ActiveX 对象),那么:
if(doc.selectNodes)
return doc.selectNodes(....);
导致 if 表达式的异常,而不是仅仅评估为 falsey,这在 a*** 中是一个痛苦。
因此(这是我的问题!),即使 IE 从XHR.responseXML返回本机 XML 对象,我们仍然不能使用 document.evaluate (或xmlDoc.evaluate)来执行 xpath 导航?
我似乎发现,如果我在 IE 中使用 XHR 并返回一个原生 XML 文档,我根本没有办法执行 xpath(.evaluate不起作用,.selectNodes / .selectSingleNode也不起作用)。结果是,我不得不对所有 IE 强制使用new ActiveXObject("Msxml2.DOMDocument.3.0")而不是 XHR!
任何建议,都会很棒。如果我想使用 xpath,我不敢相信我必须在 IE 中使用Msxml2.DOMDocument.3.0 !
谢谢。