2012-07-24 98 views
2

我正在尝试为xml创建一个跨浏览器界面,特别是使用XPath表达式来选择节点。将xpathResult.snapshotItem存储在本地变量中?

IE很容易:

this.documentElement.selectNodes(xPathStr); 

返回一个对象,让阵列状访问(results[i]results(i))。

但是,Firefox/chrome并不那么容易。

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

返回可以通过迭代或访问几乎阵列状使用results.snapshotItem(i)一个XPathResult。

我试着做

var items = results.snapshotItem; 

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

有关如何将其缓存为数组变量的任何想法,还是我坚持手动创建数组然后返回?

回答

0

我相信你需要restults切换到节点:

var item = nodes.snapshotItem[i]; 

我工作的一个类似的项目(不同的问题),但是这对我的工作。不过,我猜你可以这样做:

var items = nodes.snapshotItem; 

和以后调用项目[1]。虽然我没有测试过它。

+0

欢迎来到本网站!最好知道你证明了一个有用的答案,但感谢你的参与 – 2013-04-04 02:59:11