ios中解析HTML

页面跳转时遇到抓包数据中html各式的数据,可以用到这个,直接跳转到webView上,不过界面图片表格还需要调整,img里面有width属性,改变图片大小宽度!

使用Objective-C解析HTML或者XML,系统自带有两种方式一个是通过libxml,一个是通过NSXMLParser。libxml性能较好,且可以结合urlconnection实现边下载边解析,在要求快速、分批响应UI到情况下较为有用,NSXMLParser基本没什么优势,不如使用第三方工具。

TFHpple,它是一个轻量级的包装框架,可以很好的解决这个问题,尤其是它支持HTML的解析,是其他XML类库所不及的地方,它是用XPath来定位和解析HTML或者XML

使用步骤:

1.加入 libxml2 library 到你的项目

到Target中,选择Build Phases页
在Link Binary With Libraries中
从列表中选择libxml2.dylib

把always searchpath 设置为yes

在项目中找到Header SearchPaths,加入$(SDKROOT)/usr/include/libxml2

2.https://github.com/topfunky/hpple 下载ZIP包

-将下面hpple的源代码加入到你的项目中:
TFpple.h
TFpple.m
TFppleElement.h
TFppleElement.m
XPathQuery.h

XPathQuery.m

3. xpath 权威教程 http://www.w3school.com.cn/xpath/index.asp

4.例子:

首先引入头文件:

 

#import "TFHpple.h"

然后在viewdidload  或者 方法里写以下代码。

//把html转化成data类型

   NSData * htmlData =[NSData dataWithContentsOfURL:[NSURLURLWithString:GonglueUrl]];

(GonglueUrl为宏定义的网址:#define GonglueUrl@"http://m.aipai.com/mobile/xifen/gonglue_action-list_gameid-1106_page-1.html")

   //使用第三方(TFHpple)将html类型的数据转换为TFHpple类型

   TFHpple * doc =[TFHpple hppleWithHTMLData:htmlData];

   //读取标签

标签里的内容

    NSArray *thelements= [doc searchWithXPathQuery:@"//h4"];

    for (TFHppleElement *tempTRElement in thelements ) {

       NSLog(@"-------%@",tempTRElement.text);

    }

   //读取标签里面的内容

     NSArray* htmlObj = [doc searchWithXPathQuery:@"//a"];

   for (TFHppleElement * theHtmlin htmlObj) {

      //读取 标签里的href的内容

       NSLog(@"-------%@",[theHtmlobjectForKey:@"href"]);

    }

   //读取标签

标签里的内容

     NSArray*contentOFP = [docsearchWithXPathQuery:@"//p"];

   for (TFHppleElement * contentPin contentOFP){

       NSLog(@"-----------%@",contentP.text);

    }

   //读取标签里的内容NSArray *imageArray = [docsearchWithXPathQuery:@"//img"];

   for (TFHppleElement * imagein imageArray){

      //读取 标签里的href的内容

       NSLog(@"--------%@",[imageobjectForKey:@"src"]);

 

   }

通过以上方法 就可以得到网页中需要的东西。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值