javascript - 如何在 IE11 中运行 xPath 查询?

标签 javascript xml xpath internet-explorer-11

在我们的系统中,有一次我们使用 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/

相关文章:

javascript - 如何在使用 jquery 在表单文本字段中输入文本时更新跨度

javascript - 在 GeoGebra 中通过命令输入时点被隐藏

xpath - 来自ImportXML的奇怪值

c# - XML 序列化的替代

java - 无法定位元素: {"method" :"id" ,"selector" :"sysPublishDateDate"}

python-3.x - 如何使用 Selenium 和 Python 登录 reddit

javascript - Nodejs 处理错误

javascript - 将对象数组合并为单个对象数组

xml - 在 DTD 中重用元素

java - 如何将可绘制图像放入 gridview 中?