1

多年来,我一直在努力实现一种强大的独立于浏览器的方法来在 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 !

谢谢。

4

0 回答 0