XPathのid(object)と//*[@id=object]の違いについて
http://tv2ch.com/jlab-10s/などユニークではないIDがあるページを参照しながら読むエントリー。
id(object)の場合
var ga = document.evaluate('id("sam_height")', document, null, 7, null); console.log(ga.snapshotLength) //1
//*[@id=object]の場合
var gi = document.evaluate('//*[@id="sam_height"]', document, null, 7, null); console.log(gi.snapshotLength) //20
結果
小難しいことはさておき、id(object)は一つだけ検出する。ハードコアな動作。
//*[@id=object]は素直に全て探してきてくれる。