您的位置:首页 > 移动开发 > IOS开发

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

2013-01-15 18:07 806 查看
https://github.com/topfunky/hpple

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

让技术开发讨论更纯粹!CocoaChina问答荣誉每周、每月龙虎榜!
其实我写的不多,也就是汇集一些开源代码,然后实现了一下功能,搜索水区标题,下拉刷新。
代码不好看,大家多批评。

下拉刷新用到了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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: