2011-07-15 6 views
4

最近、iOS iPhoneプロジェクト内でlibxml2ライブラリを使い始めました。私は(ASIHTTPRequest付き)、リモートのhtmlを取得するために管理し、正常なデータを取得iOSでlibxml2を解析する(X)Htmlの例

http://bill.dudney.net/roller/objc/entry/libxml2_push_parsing

たNSData(:

ここ

http://laurentparenteau.com/blog/2009/12/parsing-xhtml-in-c-a-libxml2-tutorial/

といくつかの非常に素晴らしいポスト:ように私は、いくつかの有用なリンクを読みます)は、htmlCreatePushParserCtxt(SAXスタイル)で作成されたパーサーを含むラッパークラスにプッシュされました。私はうまくstartDocument とendDocumentコールバックを取得します。 'startElement'と 'characters'コールバックでは、 'localname'パラメータ(const xmlChar)を出力します。コンソールでは、 'html'、次に 'body'、次にいくつかの 'p'タグが見つかるが、その後は認識できない文字がたくさんある(中国語のように見える)...

とにかく多くのコードの詳細に入る前に、誰かがobjective-cベースのprojetでlibxml2を解析する(x)htmlの実例を持っているかどうか尋ねたいと思いますか?私は2つ以上のリンクについてはグーグルで試してみましたが、今までは運がありませんでした。

答えて

-3

libxml2をAppleの内蔵NSXMLParserクラスよりも使いたいのはなぜですか? iOS用のアプリケーションを作成する場合は、CライブラリよりもFoundationクラスを使用する方が理にかなっています。 NSXMLParser on Apple's websiteのドキュメントにアクセスできます。

NSXMLParserを直接使用したくない場合は、XMLデータの解析に使いやすい- (id)initWithData:(NSData *)data options:(NSUInteger)mask error:(NSError **)errorメソッドを持つNSXMLDocumentでXMLを解析できます。 HTMLデータをXHTMLとして読み込むために、initメソッドにNSXMLDocumentTidyHTMLオプションを使用することもできます。

+1

はまあそのための答えが4で見つけることができますyesにHTMLModeプロパティを設定しますhttp://bill.dudney.net/roller/objc/entry/libxml2_push_parsing – tapmonkey

+0

NSXMLParserのメモリフットプリントが高く、さらに重要なのはhtmlのようなものです。 –

+0

NSXMLDocumentはiosで使用できません.KissXMLは置換えの低下をもたらします –

0

私はアランquartemainによってAQXMLParserを提案したい:http://blog.alanquatermain.me/2013/01/09/using-aqxmlparser-and-friends/

それはlibxml2のaroung薄いラッパーとNSXMLParserよりも多くperformatです。

ので、それは(私はそれを何度も使用し、それが非有効なHTMLでも、非常によくありません)。.. HTMLモードでのlibxmlを使用しています