在我们系统的某一点上,我们使用javascript读取一大块XML,然后使用xPath查询该XML文档。
在IE 11之前,IE支持使用xmldoc.selectSingleNode(“// xpath / string”)和使用xmldoc.evaluate(“// xpath / string”)支持的非IE浏览器。这两个都返回了一个类似的对象,然后我们可以进行解释以提取所需的数据。
在IE11中,这些方法似乎都不可用。
似乎IE11对XML文档有一些支持,因为当我使用parseFromString方法使用DOMParser对象读取xml时,它返回一个IE11调试器调用XMLDocument的对象。
答案 0 :(得分:6)
感谢@Martin Honnen指出在IE11中仍然支持一些ActivXObjects!
var doc;
try {
doc = new ActiveXObject('Microsoft.XMLDOM');
doc.loadXML(stringVarWithXml);
var node = doc.selectSingleNode('//foo');
} catch (e) { // deal with case that ActiveXObject is not supported }
我使用了“Microsoft.XMLDOM”,因为它是su here它是对系统中存在的xml解析器的更通用调用,其中听起来像“Msxml2.DOMDocument.6.0 “如果不存在确切的版本,将会失败。 (我们必须在我的地方支持所有IE版本回到6.0!)
这就像它一直以来一样有效。我遇到的唯一问题是用于检测IE与其他浏览器的旧交换机if (typeof ActiveXObject !== "undefined")
失败了,因为我猜他们试图阻止它的使用!
感谢大家的帮助。
答案 1 :(得分:0)
为了扩展pixelmatt的answer,我的测试的一些结果(使用IE11的Win 7 64bit)我为了让DOMParser像在IE9和IE10中一样工作(在IE11中它现在返回一个XMLDocument对象)似乎不支持xpath查询?)。
事实证明,我可以使用以下元标记使其行为与IE10一样:
<meta http-equiv="X-UA-Compatible" content="IE=10" />
没有和以上元的结果:
以下是XMLDocument的成员(供参考):