HTML / XML のパース

iPhone開発のヌマタメモ
2009年5月 2日 02:30

寝る前に見つけたサンプル「XMLPerformance」が、結構有用っぽいです。

libxml2 を使った場合と NSXMLParser を使った場合の XML のパース速度の比較を行うサンプルなのですが(ちなみに結論としては libxml2 の方が3倍くらい速い)、libxml2 を使うと、インターネット上のデータを一部ずつダウンロードする度に、部分部分のパースができる、というのを初めて知りました(Push Mode による Chunk ごとのパースというらしい)。これだと、ダウンロードとパースが並行して行えるので、体感速度もバッテリライフもかなり向上するはず。

で、libxml2 が使えるならと思ってヘッダファイルなどを確認すると、たしかに

..../iPhoneOS2.2.sdk/usr/lib/libxml2.dylib

があって、

..../iPhoneOS2.2.sdk/usr/include/libxml2/libxml/HTMLparser.h

もあるんですね(当然のことですが)。htmlCreatePushParserCtxt() 〜 htmlParseChunk() 〜 htmlFreeParserCtxt() で、HTML のパースもちゃんと Push Mode でできるようになっています。

コメントを書く


トラックバックはありません。

トラックバックURL: http://numata.designed.jp/mt-tb.cgi/294