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にキャストしているコードが多く見られたので、修正。


使い方

  1. ekhtml_parser_new() でパーサ構築
  2. ekhtml_parser_startcb_add() で開始タグのコールバック登録
  3. ekhtml_parser_endcb_add() で終了タグのコールバック登録
  4. ekhtml_parser_datacb_set() 等でその他のコールバック登録
  5. ekhtml_parser_feed() でHTMLソースチャンクをパースさせる
  6. ekhtml_parser_flush(parser, 1) で残りのデータを掃きだす
  7. ekhtml_parser_destroy() でパーサ解放


ダウンロード

個人用ツール