iOS解析html
来源:互联网 发布:淘宝刷心悦会员封号 编辑:程序博客网 时间:2024/05/16 13:46
在一些情况下我们在工程中需要解析html中的数据,TFHpple是一个非常方便的三方类.它可以根据标签解析html数据,应用比较简便.
首先要先做一下准备工作。
下载TFHpple:,将文件夹拖入到工程中.
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
- Java基础学习总结(36)——Java注释模板
- 黑马程序员_OC对象的构造
- LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol
- IOS 遍历导航器视图是否包含某一个视图
- Cloud Design Pattern - Priority Queue Pattern(优先级队列模式)
- iOS解析html
- windows下创建线程函数CreateThread
- 表达式求值问题
- 触摸spine,触摸节点,等
- Unity3D--SDK接入一键打包APK
- SQL列出库里面的所有表名和字段名
- iOS疯狂讲解之 NSOperationQueue与GCD的使用原则和场景
- 蓝桥杯练手之高斯日记
- idea 编程实用快捷键