在我们的系统中,有一次我们使用 javascript 读取一大块 XML,然后使用 xPath 查询该 XML 文档。
在 IE 11 之前,IE 支持使用 xmldoc.selectSingleNode(“//xpath/string”),非 IE 浏览器支持使用 xmldoc.evaluate(“//xpath/string”)。它们都返回了一个相似的对象,然后我们可以对其进行解释以提取所需的数据。
在 IE11 中,这两种方法似乎都不可用。
似乎 IE11 对 XML 文档有一些支持,因为当我使用 DOMParser 对象使用 parseFromString 方法读取 xml 时,它返回一个 IE11 调试器调用 XMLDocument 的对象。
最佳答案
感谢@Martin Honnen 指出某些 ActivXObjects 在 IE11 中仍然受支持!
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”,因为它被推荐了 here这是对系统上存在的任何 xml 解析器的更通用的调用,如果不存在确切的版本,听起来像“Msxml2.DOMDocument.6.0”将失败。 (我们确实必须在我这里支持所有 IE 版本回到 6.0!)
这就像往常一样有效。我遇到的唯一问题是,我用来检测 IE 与其他浏览器的旧开关 if (typeof ActiveXObject !== "undefined")
失败了,因为我猜他们正试图阻止它的使用!
感谢大家的帮助。
关于javascript - 如何在 IE11 中运行 xPath 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19300859/