iOS解析html
来源:互联网 发布:扔玻璃球 算法 编辑:程序博客网 时间:2024/06/04 00:22
在一些情况下我们在工程中需要解析html中的数据,TFHpple是一个非常方便的三方类.它可以根据标签解析html数据,应用比较简便.
首先要先做一下准备工作
下载TFHpple:https://github.com/topfunky/hpple,将文件夹拖入到工程中.
TFHpple的工作原理是事先根据URL将html数据转化为NSData类型.然后再根据标签解析数据.
- (void)viewDidLoad{ NSString *str = [NSString stringWithFormat:@BrandDisplayDetailURL, self.brandId]; NSLog(@"%@" , str); NSData *data = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:str]]; [self handelHTML:data];}#pragma mark - 解析html- (void) handelHTML:(NSData *)data{ TFHpple *xpathParser = [[TFHpple alloc]initWithHTMLData:data]; NSMutableArray *arr = [xpathParser searchWithXPathQuery:@"//a"].mutableCopy; NSMutableArray *arrMark = [xpathParser searchWithXPathQuery:@"//mark"].mutableCopy; NSMutableArray *arrPrice = [xpathParser searchWithXPathQuery:@"//span"].mutableCopy; NSMutableArray *arrPicURL = [xpathParser searchWithXPathQuery:@"//img"].mutableCopy; for (NSInteger i = 0; i<arr.count; i++) { TFHppleElement *hpple = arr[i]; if (hpple.text != nil && ![hpple.text isEqualToString:@"查看更多..."]) { [self.titleArr addObject:hpple.text]; }else{ NSDictionary *dic = hpple.attributes; if (![[dic objectForKey:@"href"] isEqualToString:@"javascript:getData()"]) { NSString *str = [dic objectForKey:@"href"]; NSArray *divArr = [str componentsSeparatedByString:@":"]; [self.popID addObject:divArr[2]]; } } } for (NSInteger i = 0; i < arrMark.count; i++) { TFHppleElement *hpple = arrMark[i]; if (hpple.text != nil) { [self.markArr addObject:hpple.text]; } } for (NSInteger i = 0; i < arrPrice.count; i++) { TFHppleElement *hpple = arrPrice[i]; if (hpple.text != nil) { [self.priceArr addObject:hpple.text]; } } for (NSInteger i = 0; i < arrPicURL.count; i++) { TFHppleElement *hpple = arrPicURL[i]; NSDictionary *dic = hpple.attributes; [self.picURLArr addObject:[dic objectForKey:@"date-src"]]; } [self.brandDetailTableView reloadData];}
需要注意的是.从标签解析出来的数据是用数组存储的,而数组中存储的是TFHppleElement类型的对象.如果要完全取出数据.则需要使用TFHppleElement对象的属性.主要有text(取出文本),raw(取出标签所有内容),attributes(取出标签所包含的属性,返回值是字典),children(取出标签下所有子标签,返回数组).
其实,TFHpple的使用还是比较简单,html解析难在分析html的标签上.如果想要取的数据标签嵌套的比较复杂,想要取出来非常的费工夫.在这种情况下,首选的还应该是webView.
0 0
- iOS解析HTML
- iOS解析HTML .
- iOS解析HTML
- iOS解析html(转)
- html解析for iOS
- iOS解析HTML
- iOS html 解析
- iOS解析HTML
- iOS解析HTML
- IOS HTML 解析
- iOS 解析html
- ios 解析HTML
- iOS解析HTML
- IOS HTML 解析
- ios html数据解析
- iOS学习-HTML解析
- iOS解析HTML
- ios中解析html
- hdu 5432 Minimum Cut 树链剖分nlogn
- Linux C下的内存映射函数
- 多线程(打印ABCD)
- Android Custom View --- Circular(环形条)
- 深度学习(六)caffe入门学习
- iOS解析html
- 数据挖掘 入门升级
- cloudera集成kafka
- 利用ffmpeg修改的音频图片提取接口
- i386 head.S完整分析【转】
- UI 动画之反射变换的缩放
- 共用体,枚举,typedef
- Oracle中查询、禁用、启用、删除表外键
- 深度学习(七)caffe源码c++学习笔记