Hpple-iOS解析HTML-hpple读取html文件内容的代码 更新了下拉刷新功能

https://github.com/topfunky/hpple

 

hpple读取html文件内容的代码 更新了下拉刷新功能    (在iOS代码库中浏览本帖)

 
 
其实我写的不多,也就是汇集一些开源代码,然后实现了一下功能,搜索水区标题,下拉刷新。
代码不好看,大家多批评。

下拉刷新用到了EGOTableViewPullRefresh ,论坛里面有下载

这里用到了一个开源的框架
hpple,https://github.com/topfunky/hpple,很轻便,能读取html和xml数据,在用到一点xPath知识就可以了。


先下载hpple 
然后在你得工程里面导入libxml2
具体步骤看截图,
Header Search Path中加入 ${SDKROOT}/usr/include/libxml2
Other Linker Flag中加入 -lxml2

 


 

已截取cocoachina为例子主要代码如下
#define WebSite @"http://www.cocoachina.com/bbs/simple/?f5.html"

//NSStringEncoding encode = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
//NSData *siteData = [[NSString stringWithContentsOfURL:[NSURL URLWithString:WebSite]] dataUsingEncoding:encode];
NSData*siteData = [[NSDataalloc] initWithContentsOfURL:[NSURLURLWithString:WebSite]];

TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:siteData];
//NSArray *elements = [xpathParser search:@"//a[@class='subject']"];
NSArray*elements = [xpathParser search:@"//ul[@type='1']/li[position()<9]/a"];
//TFHppleElement *element = [elements objectAtIndex:3];
NSMutableArray*arr = [[NSMutableArrayalloc] init];

for (TFHppleElement *element in elements) {

NSString *strs = [element content];
NSLog(@"cc: %@", strs);
[arr addObject:strs];
NSLog(@"arr: %@", arr);

    }
self.listData = arr;
NSLog(@"listData: %@", listData);
[arr release];
[xpathParser release];


需要注意的是,网上的例子大多是用到NSData*siteData = [[NSStringstringWithContentsOfURL:[NSURLURLWithString:WebSite]] dataUsingEncoding: ];
这么写中文会出现乱码,不管你编码用bgk还是utf8都是乱码。
改成 NSData*siteData = [[NSDataalloc] initWithContentsOfURL:[NSURLURLWithString:WebSite]];就不会有乱码了。
具体为什么我也搞不动,请高手指点指点。


"//ul[@type='1']/li[position()<9]/a" 这个里面是xPath,可以参照xPath语法察看。


资源:
hpple下载 https://github.com/topfunky/hpple
xPath教程 http://www.w3school.com.cn/xpath/xpath_syntax.asp
外国网站的关于hpple的教程 http://blog.objectgraph.com/index.php/2010/02/24/parsing-html-iphone-development/

我做的一个demo

 CocoaChina.zip (61 K) 下载次数:1129

转载于:https://www.cnblogs.com/greywolf/archive/2013/01/15/2861657.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值