将xpathResult.snapshotItem存储在局部变量中?

时间:2012-07-24 16:22:46

标签: javascript xpath

我正在尝试为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原型对象上的非法操作”)。

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

1 个答案:

答案 0 :(得分:0)

我认为你需要将restults切换到节点:

    var item = nodes.snapshotItem[i];

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

    var items = nodes.snapshotItem;

以后再调用[i]项。不过,我还没有测试过它。