2011-07-15 14 views
4

解析(X)HTML與libxml2的最近我開始玩弄與iPhone的iOS項目中的libxml2庫。我讀了一些有用的鏈接,如:舉例iOS中

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

和一些很不錯的文章在這裏:

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

我設法獲取遠程的html(與ASIHTTPRequest),併成功地獲得數據(NSData的)上的「didReceiveData」事件推到含有htmlCreatePushParserCtxt(SAX樣式)創建的解析器的包裝類。我很好地獲得了startDocument 和endDocument回調。在 '的startElement' 和「人物的回調,我打印 '的localName' paramater(常量XMLCHAR)。在控制檯中,我發現它找到'html',然後是'body',然後是一些'p'標籤,但是後來我得到很多無法識別的字符(有時它看起來甚至像中文..)...

Anyway ,進入到多的代碼細節之前,我想問問,如果有人在一個Objective-C基於謨解析(X)HTML與libxml2的一個工作的例子嗎?我嘗試了更多的2個提到的鏈接,但直到現在沒有運氣。

回答

-3

你爲什麼要使用libxml2在蘋果的內置NSXMLParser類?如果您正在爲iOS創建應用程序,則使用Foundation類比C庫更有意義。您可以訪問NSXMLParser on Apple's website的文檔。

如果您不想直接使用NSXMLParser,則可以嘗試使用NSXMLDocument解析XML,該解析器具有一個易於使用的用於解析XML數據的- (id)initWithData:(NSData *)data options:(NSUInteger)mask error:(NSError **)error方法。您甚至可以將init方法的NSXMLDocumentTidyHTML選項用作XHTML讀取HTML數據。

+1

好了,答案可以在4日發現段落在我提到的鏈接中:http://bill.dudney.net/roller/objc/entry/libxml2_push_parsing – tapmonkey

+0

NSXMLParser具有較高的內存佔用,更重要的是:不喜歡HTML。 –

+0

NSXMLDocument不在ios上提供,KissXML提供了一個替代方案 –