XPath函数selectNodes在Windows 8中不能工作



这一小段JavaScript代码让我抓狂,因为我安装了Windows 8

xmlDoc=http_request.responseXML.documentElement;
var nodes = xmlDoc.selectNodes('/rfp_object/category');

在那一刻之前,一切都很好,但现在我在使用Windows 8时遇到了麻烦。此错误提示:此对象不支持属性或方法selectNodes。

在Chrome, Firefox, Safari和Windows Vista中,它做了我所期望的。但在Windows 8系统下则不然。更奇怪的是,它在XP服务器上的开发中工作得很好,但在Windows server 2008上的生产中却不行。

将selectNodes更改为getElementsByTagName('category')在这种情况下工作得很好,但不是一个选项,因为我需要在其他场合过滤数据。

那么我该怎么做,才能让它像以前一样为Windows8用户工作呢?如有任何帮助,我将不胜感激。

Lourens

我认为IE 10使responseXML成为IE XML DOM文档,而早期版本的IE则是MSXML XML DOM文档。selectSingleNodeselectNodes方法是MSXML DOM API的一部分,而不是IE DOM API的一部分。我不认为IE为它的DOM文档提供XPath支持,所以您需要决定是否要将responseXML转换为MSXML DOM文档,沿着

行。
var doc = new ActiveXObject('Msxml2.DOMDocument.6.0');
doc.loadXML(new XMLSerializer().serializeToString(http_request.responseXML));

然后在doc变量上使用selectNodes,或者您将检查IE提供的方法(如getElementsByTagName和querySelector)是否允许您找到您正在寻找的内容,或者您将需要检查XPath的Javascript实现(如https://github.com/ilinsky/xpath.js)是否允许您编写您想要的查询。

相关内容

  • 没有找到相关文章

最新更新