iOS开发中的Html解析方法

本文作者为大家介绍了在iOS开发中的Html解析方法,并同时提供了Demo代码的下载链接,Demo 解析了某个网站(具体可在代码中查看)的html网页,提取了图片以及标题。

初次解析html,使用是网上的第三方类;我使用的是以下三个类,将其添加到项目中:

  1. #import "TFHpple.h"
  2. #import "TFHppleElement.h"
  3. #import "XPathQuery.h"

添加以上三个类必须添加一个库,这个库是:libxml2.2.dylib。并且还需要设置一些路径参数,否则会一直报错;这个路径的设置,在 targets中,在build settings搜索Header Search Paths,将debug和release设置不同的值;

debug的值设置成:/usr/include/libxml2

release的值设置成:${SDKROOT}/usr/include/libxml2

将以上的设置好了以后,就是使用的时候;将#import "TFHpple.h"添加到解析html的类中,再写解析方法;

一般思路如下:

1.首先将网页的html转换成oc能够认识的NSString数据;用到的方法如下:

  1. NSString *dataString = [NSString stringWithContentsOfURL:[NSURL URLWithString:htmlString] encoding:NSUTF8StringEncoding error:nil];  //htmlString是html网页的地址

2.将dataString转换成NSData,给TFHpple类用

  1. NSData *htmlData = [dataString1 dataUsingEncoding:NSUTF8StringEncoding];

3.设置html中节点,根据节点取值,例如<p>.....</p>,可以用节点来取值;

如NSString *nodeString = @"//p";

使用htmlData和nodeString,解析自己需要的值:

  1. TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:htmlData];
  2. NSArray *elements  = [xpathParser searchWithXPathQuery:nodeString];  //这个数组中就有需要的值

(TFHppleElement中提供很多方法,可以用这些方法获取elements的值,如- (NSArray *) children;)

Demo链接http://code4app.com/ios/%E8%A7%A3%E6%9E%90HTML/5167ca396803faf447000002

【编辑推荐】

【责任编辑:闫佳明 TEL:(010)68476606】

iOS开发中的Html解析方法的更多相关文章

  1. iOS开发中常用的分类方法---UIImage+Category

    在开发中使用分类对原有的系统类进行方法扩展,是增强系统原有类功能的常见做法. /** * 自由拉伸一张图片 * * @param name 图片名字 * @param left 左边开始位置比例 值范 ...

  2. iOS开发中的HTML解析

    在进行解析前,先将下面的第三方类添加到工程中: 添加以上三个类必须添加一个库,这个库是:libxml2.2.dylib. 还需要设置一些路径参数这个路径的设置,在 targets中,在build se ...

  3. iOS开发中一些常用的方法

    1.压缩图片 #pragma mark 处理图片 - (void)useImage:(UIImage *)image { NSLog(@"with-----%f heught-----%f& ...

  4. iOS开发中自定义字体的方法

    http://www.cnblogs.com/iyou/archive/2014/05/25/3751669.html 1. 首先下载你想要设置的字体库,例如设置方正启体简体 2. 添加到工程,一定要 ...

  5. (iOS)开发中收集的小方法

    1.颜色转变成图片 - (UIImage *)createImageWithColor:(UIColor *)color {     CGRect rect = CGRectMake(0.0f, 0. ...

  6. 解析iOS开发中的FirstResponder第一响应对象

    1. UIResonder 对于C#里所有的控件(例如TextBox),都继承于Control类.而Control类的继承关系如下: 代码如下: System.Object System.Marsha ...

  7. iOS开发中几个重要的方法

    iOS开发中几个重要的方法: 加载类到内存,程序刚启动的时候调用,调用在main函数之前 1.+(void)load{ } 初始化类,类第一次使用的时候调用一次 2.+(void)initialize ...

  8. IOS开发中重写init方法使用需谨慎

    IOS开发中重写init方法使用需谨慎 今天在写一个小软件的时候出现一点问题,这个软件的功能是搜索全国学校,首页就是搜索输入框,在框中输入完要查询的学校所在省份,点击buttom后就会跳转到对应的视图 ...

  9. IOS开发中数据持久化的几种方法--NSUserDefaults

    IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefaul ...

随机推荐

  1. 单片机设计与KeilC编程总结

    1基本原则    质量是关键.没有人会对很差的工作感到满足.当完成高质量的工作时,你会为此而感到骄傲.不管你是否知道,你都会因为你的高质量工作而得到信誉.因此,要想为自己所做的事感到骄傲,就需要建立个 ...

  2. 设计模式 ( 二十一 ):Vistor访问者模式 -- 行为型

    1.概述 在软件开发过程中,对于系统中的某些对象,它们存储在同一个集合collection中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有 ...

  3. iOS开发手记 - iOS9.3 UINavigationController添加后不显示storyboard中viewcontroller里的控件的解决方法

    我原先是这么做的,通常也是这么做 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSD ...

  4. 安卓,分享到facebook的若干种方法汇总

    近期做了facebook的分享功能,遇到了很多问题,这里总结一下,供大家参考,不足之处还请大家指正. facebook分享方式: 1.通过intent调用调用本地facebook应用方式 支持单独分享 ...

  5. android调用系统自带的的浏览器搜索关键字

    //调用系统的浏览器搜索详情 public void jumpBrowser(String value) { /* 取得网页搜寻的intent */ Intent search = new Inten ...

  6. MySQL的数据库引擎的类型

    你能用的数据库引擎取决于mysql在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型INNO ...

  7. jquery绑定事件on的用法

    语法 $(selector).on(event,childSelector,data,function,map) 参数 描述 event 必需.规定要从被选元素移除的一个或多个事件或命名空间.由空格分 ...

  8. python socket实例练习

    Web Server是基于Socket编程,又称之为网络编程,socket是网络编程接口,socket可以建立网络连接,读数据,写数据.socket模块定义了一些常量参数,用来指定socket的的地址 ...

  9. java.util.Map.Entry接口

    java.util.Map.Entry接口主要就是在遍历map的时候用到,给你个例子:package test;import java.util.*;import java.util.Map.Entr ...

  10. fetch策略

    @OneToMany(mappedBy="image",cascade=CascadeType.ALL,fetch=FetchType.EAGER) @Fetch(value=Fe ...