読者です 読者をやめる 読者になる 読者になる

libxmlのHTMLparserはHTML5をサポートしていない

Objective-C memo

"interface for an HTML 4.0 non-verifying parser"ってどどんと書いてあるので自明ではあるのですが。
http://xmlsoft.org/html/libxml-HTMLparser.html


うーん 
https://bugzilla.gnome.org/show_bug.cgi?id=655218


HTMLのパースをしたくて色々調べたのですが、なかなか良い物がないですね。
XMLパーサだと困らないのですが。
あ、ちなみに用途的にSAXパーサでなくDOMパーサを探しました。
あと、パースした結果をファイルに書き出すような処理がしたかったので私が困っただけの話で、パースしてなんらかの結果を抜き出すだけならそれほど困らないかと。

NSXMLDocumentでNSXMLDocumentTidyHTMLのオプションでパースすると、XHTMLとして解釈してパースされちゃうので、ちょっとアレです。xmlのタグとか差し込まれちゃうし。

WebKit Objective-C Frameworkでは、パースする部分は非公開APIみたいでアレ。ストアに乗っけないなら使っちゃって野良アプリというのも手なんですけど。

オープンソースで公開されてるWebKitごっそり持って来てごにょごにょやるというのもちょっと大仰な感じ。
用途からすると字句解析とツリー構築部分だけあれば事足りるので。


色々検討した結果別な解決方法を考えついて、結局libxml使用をやめました。
ので、メモとしてだけ残しておきます。

ついでにlibxmlの追加の仕方も。
http://news.mynavi.jp/column/iphone/008/index.html