どこでもXPath

XPathつーのはXML文書のノードを指定する為に使うものなんだが、当然XHTMLでも使う事ができる。ていうかValidじゃないHTMLでもなんとかしてくれる。

XMLがどーの、とかいうと小難しい感じがするが、結構単純なのでちょっと覚えておくとハッピーな感じ。

自分がよく使うシチュエーションは

  • 人様のHTMLを解析するときに、タグ構成などをサクっと解釈する
  • 人様のHTMLから特定のタグ内をかっぱらう時(すくれいぴんぐっていうの?)
  • 自分でかいたCSSが、HTMLで適用されてない時とかに、ほんとにタグ構成が合ってるかの検証

などなど意外と応用範囲が広い。

Firefox限定だけど、どこのページでもXPathを読み込んでFirebugから使えるようにするブックマークレットを置いときますね。

javascript: (function(){ $X = function (query, node) { var parentNode =(node)? node:document; s=document.evaluate(query, parentNode, null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); a=new Array(); for(i=0;i<s.snapshotLength;i++){ a.push( s.snapshotItem(i) ) }; return a;} })();

どこかのBlogさんからもらってきたんだけど、どこだか思い出せない罠。

#text()をノードセットのように扱いたいんだがどーもうまくいかない試行錯誤の日々(´Д`)
#もっともCSSのチェックだったらprototype.js読み込んで$$()のが早かったりして