我已经努力实现一个强大的浏览器独立的方法来加载和导航(使用xpath)xml文件中的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表达式出现异常,而不仅仅是评估为false,这是a ***中的一个难题。
因此(这是我的问题!),即使IE从 XHR.responseXML 返回原生XML对象,我们仍然无法使用document.evaluate(或 xmlDoc.evaluate )执行xpath导航?
我似乎发现,如果我在IE中使用XHR并获得原始XML文档,我根本无法执行xpath( .evaluate 不起作用, .selectNodes / .selectSingleNode )。结果是,我不得不强行使用新的ActiveXObject(“Msxml2.DOMDocument.3.0”)而不是所有IE的XHR!
任何建议都会很棒。如果我想使用xpath,我无法相信我必须在IE中使用 Msxml2.DOMDocument.3.0 !
感谢。