evaluateの第2引数contextNodeの罠
てっきり、そのcontextNode以下のノードのみが評価対象となると思い込んでしまった。
第2引数は単にドキュメント中の初期位置を指定するだけで、サブグラフを与えたりするわけではない。
document.evaluate('../*', document.getElementById("menu"), null, 7, null).snapshotItem(0).nodeName // -> "DIV"とか普通にできる。
第2引数の指定を生かすには
- 頭に.をつける
- 頭に/をつけずに、decendant::ほかを使う
などする。
http://mayokara.info/note/view/228
なんだと。
追記:2008.11.24
コンテキストノード配下の'a'や'div'要素を取得する場合は
.//a
.//div[@class='hoge']
という感じになる