iOS 数据解析之使用TFHpple解析html

TFHpple是一个XML/HTML解析框架,我们可以用来解析从后台发送过来的HTML数据。
  如果要在项目中使用这个框架,首先需要将其导入,在这里使用CocoaPods将其导入。

下面是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实例;
  • 查找节点存入数组;
  • 从数组中取出节点。

接下来使用TFHpple解析http://www.jianshu.com/u/b05772019513中的数据,获取到每篇文章的标题。

标题

代码如下:

    NSString *url = @"http://www.jianshu.com/u/b05772019513";
    
    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);
            
        }
        
    }
解析结果

联系作者:简书·DH_Fantasy 新浪微博·DH_Fantasy
版权声明:自由转载-非商用-非衍生-保持署名(CC BY-NC-ND 3.0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,245评论 4 61
  • 小七特别推荐:待遇好,返费补贴 200~1500元 常熟安博电子 综合工资:4000-4800元 薪资发送日:每月...
    28a3f1889778阅读 398评论 0 0
  • 做完HTML的相关任务,觉得自己得好好总结一下,总结一下一些标签的用法。 HTML结构 一个完整的 HTML 文档...
    WP啦啦啦阅读 244评论 0 2
  • 3D动画 提供一种机制,描述各定点位置随时间的变化 骨骼动画简介 顶点动画早期的3D模型动画,就是把每帧的顶点数据...
    核桃啊阅读 7,352评论 1 7