簡単なXPath

GreaseMonkeyのuser.jsで使われているXPathであるが、ざっと見たところではあまりややこしい使い方をしている人はいないように見える。
//div[@class="main"]
こんな指定ならばXPathを使わない方法に俺が書き換えるのも簡単であり、それはこの程度を肩代わりする機能を作るのは難しくないとも言える。
//で始まる階層未指定のタグ名と@で指定する属性指定だけなら、むしろシンプルな機能として提供できそうな気がするが、必要になったら拡張していくという方法でもいいだろうか。
インデックスぐらいはできるかもしれないが、階層は厳しくもないけど遅いだろうな。
document.all.tagsとgetElementsByTagNameはどっちが速いんだろう?内部的には同じとかかもしれんが。
まあどっちにしろ速度的には期待できない実装方法かなあ。