2

特にXPath式を使用してノードを選択する、xml用のクロスブラウザインターフェースを作成しようとしています。

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;

そして後でアイテム[i]を呼び出します。しかし、私はそれをテストしていません。

于 2013-04-04T02:40:10.517 に答える