2

我正在尝试为 xml 创建一个跨浏览器界面,特别是使用 XPath 表达式来选择节点。

IE 很简单:

this.documentElement.selectNodes(xPathStr);

返回一个对象,该对象提供类似数组的访问(results[i]results(i))。

然而,Firefox/chrome 并不那么容易。

this.xpathEvaluator.evaluate(xPathStr, this.documentElement, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

返回一个 XPathResult,可以使用results.snapshotItem(i).

我试着做

var items = results.snapshotItem;

但是当我尝试使用它时,这给了我一个错误(“对 WrappedNative 原型对象的非法操作”)。

关于如何将其缓存为类似数组的变量的任何想法,或者我是否坚持手动创建数组然后返回它?

4

1 回答 1

0

我相信您需要将结果切换到节点:

    var item = nodes.snapshotItem[i];

我正在做一个类似的项目(有不同的问题),但这对我有用。但是,我猜你可以这样做:

    var items = nodes.snapshotItem;

然后调用 items[i]。不过,我还没有测试过。

于 2013-04-04T02:40:10.517 回答