iOS开发中的Html解析方法

移动开发 iOS
本文作者为大家介绍了在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

责任编辑:闫佳明 来源: oschina
相关推荐

2011-08-15 17:58:22

IOS开发编码转换

2018-08-09 20:47:41

2015-03-18 09:29:12

iOS开发争议

2017-02-24 11:00:57

iOS抓取HTML解析数据

2011-07-07 16:38:21

iOS UITableVie

2010-09-28 10:33:59

HTML DOM Ch

2015-10-20 11:22:34

iOS开发Git

2011-08-04 18:39:32

iOS XML

2011-08-19 13:51:12

2013-06-27 14:33:00

2011-08-16 16:24:51

IOS开发HTML5编码

2011-08-16 16:14:07

IOS开发HTML5通用接口

2009-09-02 16:21:02

C#解析Html

2015-07-20 10:54:47

IOS提高效率工具

2013-03-27 11:33:32

iOS开发iOSjson解析方式

2013-01-06 09:52:43

SQLite

2013-04-09 16:04:06

iOS开发SQLite知识总结

2014-04-23 14:40:06

iOS开发KVO内部实现

2013-07-22 13:48:55

iOS开发ASIHTTPRequ使用Cookie

2011-08-02 11:30:41

iOS开发 邮件发送
点赞
收藏

51CTO技术栈公众号