下面是TFHpple的示例代码。
#import "TFHpple.h"
NSData * data = [NSData dataWithContentsOfFile:@"index.html"];
TFHpple * doc = [[TFHpple alloc] initWithHTMLData:data];
NSArray * elements = [doc search:@"//a[@class='sponsor']"];
TFHppleElement * element = [elements objectAtIndex:0];
[e text]; // The text inside the HTML element (the content of the first text node)
[e tagName]; // "a"
[e attributes]; // NSDictionary of href, class, id, etc.
[e objectForKey:@"href"]; // Easy access to single attribute
[e firstChildWithTagName:@"b"]; // The first "b" child node
从中可以看出要解析HTML中的内容分四步:
- 将HTML数据转换为NSData类型;
- 根据data创建TFHpple实例;
- 查找节点存入数组;
- 从数组中取出节点。
代码如下:
NSString *url =
NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:url]];
TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:data];
NSArray *dataArr = [xpathParser searchWithXPathQuery:@"//a"];
for (TFHppleElement *element in dataArr) {
if ([[element objectForKey:@"class"] isEqualToString:@"title"]) {
NSLog(@"%@",element.text);
}
}
解析结果