首页 > 代码库 > hpple——网页http解析框架

hpple——网页http解析框架

TFHpple是一个小型的封装,可以用来解析html,它是对libxml的封装,语法是xpath。


使用Objective-C解析HTML或者XML,系统自带有两种方式一个是通过libxml,一个是通过NSXMLParser。


libxml性能较好,且可以结合urlconnection实现边下载边解析,在要求快速 、分批响应UI到情况下较为有用,NSXMLParser基本没什么优势,不如使用第三方工具。

Hpple,它是一个轻量级的包装框架,可以很好的解决这个问题,尤其是它支持HTML的解析,是其他XML类库所不及的地方,它是用XPath来定位和解析HTML或者XML。

 

使用步骤:

1、 -加入 libxml2 到你的项目中
到Project设置中,选all,找到Search paths下面的
Header Search Paths项目
添加新的 search path “${SDKROOT}/usr/include/libxml2″
注意选择 Enable recursive option


2、 -加入 libxml2 library 到你的项目
到Target中,选择Build Phases页
在Link Binary With Libraries中
从列表中选择libxml2.dylib


3、 -到这里下载ZIP包,将下面hpple的源代码加入到你的项目中:
HTFpple.h
HTFpple.m
HTFppleElement.h
HTFppleElement.m
XPathQuery.h
XPathQuery.m

 

4、 -简单应用举例 

  1. #import "TFHpple.h"  
  2.    
  3. NSData *data = [[NSData alloc] initWithContentsOfFile:@"www.baidu.com"];  
  4.    
  5. // Create parser  
  6. xpathParser = [[TFHpple alloc] initWithHTMLData:data];  
  7.    
  8. //Get all the cells of the 2nd row of the 3rd table   
  9. NSArray *elements  = [xpathParser search:@"//title"];  
  10.    
  11. // Access the first cell  
  12. TFHppleElement *element = [elements objectAtIndex:0];  
  13.    
  14. // Get the text within the cell tag  
  15. NSString *content = [element content];   
  16. NSLog(@"%@",content); 
  17.