检测xml对象类型

时间:2013-06-07 00:53:18

标签: javascript xml internet-explorer

我已经努力实现一个强大的浏览器独立的方法来加载和导航(使用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

感谢。

0 个答案:

没有答案