在iOS中使用libxml2解析(X)HTML的示例

4

最近我开始在iOS iPhone项目中使用libxml2库。我阅读了一些有用的链接,例如:

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

还有一些非常好的帖子在这里:

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

我成功地使用ASIHTTPRequest检索了远程HTML并在“didReceiveData”事件中获取了数据(NSData),然后将其推送到包含使用htmlCreatePushParserCtxt(SAX样式)创建的解析器的包装类中。我得到了很好的startDocument和endDocument回调。在“startElement”和“characters”回调中,我打印了“localname”参数(const xmlChar)。在控制台中,我看到它找到了“html”,然后是“body”,然后是一些“p”标记,但是然后我得到了很多无法识别的字符(有时甚至看起来像中文...)...
总之,在涉及太多代码细节之前,我想问一下是否有人在基于Objective-C的项目中使用libxml2解析(x)html的工作示例?我尝试了搜索超过2个提到的链接,但到目前为止没有运气。
2个回答

0

-3

为什么要使用libxml2而不是苹果内置的NSXMLParser类?如果您正在为iOS开发应用程序,使用Foundation类比使用C库更有意义。您可以在苹果网站上访问NSXMLParser的文档链接1

如果您不想直接使用NSXMLParser,可以尝试使用NSXMLDocument解析XML,它具有易于使用的- (id)initWithData:(NSData *)data options:(NSUInteger)mask error:(NSError **)error方法来解析XML数据。您甚至可以使用init方法的NSXMLDocumentTidyHTML选项将HTML数据读取为XHTML。


1
那个答案可以在我提到的链接文章的第四段找到:http://bill.dudney.net/roller/objc/entry/libxml2_push_parsing - tapmonkey
NSXMLParser具有高内存占用量,更重要的是:不喜欢HTML。 - Daij-Djan
NSXMLDocument在iOS上不可用,KissXML提供了一个即插即用的替代方案。 - Daij-Djan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接