我正在尝试为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原型对象上的非法操作”)。
关于我如何将其缓存为类似数组的变量的任何想法,或者我是不是手动创建数组然后返回它?
答案 0 :(得分:0)
我认为你需要将restults切换到节点:
var item = nodes.snapshotItem[i];
我正在开展一个类似的项目(有不同的问题),但这对我有用。但是,我猜你可以这样做:
var items = nodes.snapshotItem;
以后再调用[i]项。不过,我还没有测试过它。