EkhtmlMod
提供:やる気向上作戦
目次 |
ekhtmlModとは
El-Kabong HTML を改造したもの。
El-Kabong HTMLは、HTMLをSAX風にパースするためのCライブラリ。 UNIX系OSでビルド可能。Windowsでも、UNIXでconfigure & makeしたソースから ekhtml_config.hとekhtml_tables.hをコピーしてくれば問題なく使える。 見た感じMT-safe。
オリジナルからの変更点
- patch1 (2006/05/17)
- start tagのパース中にekhtml_parser_destroy()するとリークするバグを修正。
- 初版
- <SCRIPT>及び<STYLE>ブロックの内容を取得するためのコールバックを追加。
- 本来これらの要素の内容はCDATAであり、「/>」を含んではならない。しかし、実際問題として「/>」を含むソースが非常に多い。そこで、標準からは外れるが、「/>」ではなく、</SCRIPT>もしくは</STYLE>が出現するまでブロックが継続されるものとした。
- XHTMLの空要素タグ(<TAGNAME/>)に対応。開始タグのコールバック関数に、空要素タグかどうかを示すint型引数を追加。
- SourceForgeのBug Trackerにあがっていたパッチをマージ(リーク解消、属性値に使える文字の追加)。
- toupper()にcharを直接渡していたので、念のため(unsigned char)にキャストしてから渡すように変更。
- その他、ポインタをintにキャストしているコードが多く見られたので、修正。
- <SCRIPT>及び<STYLE>ブロックの内容を取得するためのコールバックを追加。
使い方
- ekhtml_parser_new() でパーサ構築
- ekhtml_parser_startcb_add() で開始タグのコールバック登録
- ekhtml_parser_endcb_add() で終了タグのコールバック登録
- ekhtml_parser_datacb_set() 等でその他のコールバック登録
- ekhtml_parser_feed() でHTMLソースチャンクをパースさせる
- ekhtml_parser_flush(parser, 1) で残りのデータを掃きだす
- ekhtml_parser_destroy() でパーサ解放