iOS开发中的Html解析方法
iOS开发中的Html解析方法

初次解析html,使用是网上的第三方类;我使用的是以下三个类,将其添加到项目中:
- #import "TFHpple.h"
- #import "TFHppleElement.h"
- #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数据;用到的方法如下:
- NSString *dataString = [NSString stringWithContentsOfURL:[NSURL URLWithString:htmlString] encoding:NSUTF8StringEncoding error:nil]; //htmlString是html网页的地址
2.将dataString转换成NSData,给TFHpple类用
- NSData *htmlData = [dataString1 dataUsingEncoding:NSUTF8StringEncoding];
3.设置html中节点,根据节点取值,例如<p>.....</p>,可以用节点来取值;
如NSString *nodeString = @"//p";
使用htmlData和nodeString,解析自己需要的值:
- TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:htmlData];
- NSArray *elements = [xpathParser searchWithXPathQuery:nodeString]; //这个数组中就有需要的值
(TFHppleElement中提供很多方法,可以用这些方法获取elements的值,如- (NSArray *) children;)
Demo链接:http://code4app.com/ios/%E8%A7%A3%E6%9E%90HTML/5167ca396803faf447000002
【编辑推荐】
iOS开发中的Html解析方法的更多相关文章
- iOS开发中常用的分类方法---UIImage+Category
在开发中使用分类对原有的系统类进行方法扩展,是增强系统原有类功能的常见做法. /** * 自由拉伸一张图片 * * @param name 图片名字 * @param left 左边开始位置比例 值范 ...
- iOS开发中的HTML解析
在进行解析前,先将下面的第三方类添加到工程中: 添加以上三个类必须添加一个库,这个库是:libxml2.2.dylib. 还需要设置一些路径参数这个路径的设置,在 targets中,在build se ...
- iOS开发中一些常用的方法
1.压缩图片 #pragma mark 处理图片 - (void)useImage:(UIImage *)image { NSLog(@"with-----%f heught-----%f& ...
- iOS开发中自定义字体的方法
http://www.cnblogs.com/iyou/archive/2014/05/25/3751669.html 1. 首先下载你想要设置的字体库,例如设置方正启体简体 2. 添加到工程,一定要 ...
- (iOS)开发中收集的小方法
1.颜色转变成图片 - (UIImage *)createImageWithColor:(UIColor *)color { CGRect rect = CGRectMake(0.0f, 0. ...
- 解析iOS开发中的FirstResponder第一响应对象
1. UIResonder 对于C#里所有的控件(例如TextBox),都继承于Control类.而Control类的继承关系如下: 代码如下: System.Object System.Marsha ...
- iOS开发中几个重要的方法
iOS开发中几个重要的方法: 加载类到内存,程序刚启动的时候调用,调用在main函数之前 1.+(void)load{ } 初始化类,类第一次使用的时候调用一次 2.+(void)initialize ...
- IOS开发中重写init方法使用需谨慎
IOS开发中重写init方法使用需谨慎 今天在写一个小软件的时候出现一点问题,这个软件的功能是搜索全国学校,首页就是搜索输入框,在框中输入完要查询的学校所在省份,点击buttom后就会跳转到对应的视图 ...
- IOS开发中数据持久化的几种方法--NSUserDefaults
IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefaul ...
随机推荐
- vsftpd,tftp安装配置
一. 对比共同点:都包含ftp不同点:1)vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.你可以通过ftp客户端上传下载软件.可设置访问用户名密码,或匿名anonymous登陆.默认 ...
- [置顶] 如何更改CSDN博客高亮代码皮肤的样式,使博客看起来更有范(推荐)
由于本人写博客的时候,也没有配置博客的相关属性,因此贴出来的代码块都是CSDN默认的,因此代码背景色都是白色的,如下所示: 但是本人在浏览他人博客的时候,发现有些博客的代码块看起来比较有范,整个代码库 ...
- IntelliJ IDEA创建web项目及异常问题解决
IDEA配置Tomcat: 1.下载Tomcat,本次使用的是apache-tomcat-6.0.43 2.IDEA配置Tomcat 在idea中的Settings(Ctrl+Alt+s)(或者点击图 ...
- 关于使用axis调用webservice接口方法
1.概述: 我们有时候会调用webserviec接口,我们向接口发送请求参数,从接口接收返回值. 2.形式: package client; import org.apache.axis.client ...
- [转]Android重力感应开发
http://blog.csdn.net/mad1989/article/details/20848181 一.手机中常用的传感器 在Android2.3 gingerbread系统中,google提 ...
- android工程gen目录中R.java包名是怎么确定
新建一个工程,包名用的com.mythroad.adskiller, 后来觉得不好,又改成com.mythroad.adsinscepter,但是我发现gen下的R.java文件的包名还是原来的com ...
- 遍历Jenkins全部项目的配置
随着任务的增多.须要一个脚本能够检查全部的jenkins project的配置.比方提取任务计划配置,开发人员信息等. 首先要能够得到全部的project名称. 能够通过REST API实现: htt ...
- CentOS6.3(64位)下安装Oracle11gR2(64)服务器
安装环境 Linux服务器:Centos6.3 64位 Oracle服务器:Oracle11gR2 64位 系统要求 1.Linux安装Oracle系统要求 系统要求 说明 内存 必须高于1G的物理内 ...
- hdu 3395
KM裸题 每个鱼都认为自己是雄性,而且会攻击它认为是雌性的鱼,每个鱼只能被攻击一次,被攻击后会产卵(个数是给的两条鱼的值的异或运算) #include<string.h> #include ...
- C#自定义List类
代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespac ...