SAXとHTML

HTMLをSAXでパースしてるんだけど、SAXはXMLをパースするもんだって自覚が無かったみたいで心配事がひとつ。
(PEARのXML_HTMLSax)

script要素内にdocument.writeを書いていて、document.writeの中にHTML要素を書いていたりすると、Data Handlerが拾っちゃう。CDATAに入れておけば、Escape Handlerに渡る。

HTMLをパースしようなんて思う場合、その対象は(大抵)人様のHTML。XMLなりYAMLなりのパースし易いフォーマットで提供されてる訳じゃないけど、『使いたいから無理矢理使う』ためにパースする。そんな『野良HTML』にCDATAとか期待する訳にもいかず。

javascriptとかで出来上がる『最終的なHTMLソース』を受け取る事が出来るなら別だけど、そうでないなら思い切ってscript要素をそぎ落としてからパースすればいいのか。

DOM使った方がいいのかな。SAXの方がDOMより優しそうな印象なんだよね。。。


取り出すデータがパターンどおりに出てくれる場合は、(ゴミを取り払ってから)正規表現でぶっこ抜いた方がてっとり早いかな?

プロフィール

このブログ記事について

このページは、koshigoeが2006年11月17日 23:08に書いたブログ記事です。

ひとつ前のブログ記事は「Webブラウザのキャッシュ周りの挙動がよくわからない」です。

次のブログ記事は「Selenium RC経由でJSが作るDOM(HTML)をテキストデータで受け取れるかな?」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。