iphone:解析html的第三库hpple初试
今天搞了一天,想用hpple较为便利的利用xpath解析html。
参考的是这里面的做法:http://lwxshow.com/ios-iphone-development-teaches-you-how-to-use-the-objective-c-parsing-html-lwxshow-com
(相关:
http://stackoverflow.com/questions/405749/parsing-html-on-the-iphone
http://stackoverflow.com/questions/9746745/xpath-attributes-selection
)
它里面说的挺详细的:就是引用 https://github.com/topfunky/hpple 上的hpple库,再结合libxml,就可以使用xpath搜索html了。
关于xpath的可以参考:w3school的教程 http://www.w3school.com.cn/xpath/index.asp
相关配置好了之后就可以直接使用:
- (void)viewDidLoad {[super viewDidLoad];NSError *error;NSData *htmlData = [[NSString stringWithContentsOfURL:[NSURLURLWithString: @"http://dict.youdao.com/m/search?keyfrom=dict.mindex&vendor=&q=apple"]encoding:NSASCIIStringEncoding error:&error]dataUsingEncoding:NSUTF8StringEncoding];TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:htmlData];NSArray *elements = [xpathParser searchWithXPathQuery:@"//title"]; // get the titleNSLog(@"%d",[elements count]);TFHppleElement *element = [elements objectAtIndex:0];NSString *content = [element content];NSString *tagname = [element tagName];NSString *attr = [element objectForKey:@"href"];NSLog(@"content = %@",content);NSLog(@"tagname = %@",tagname);NSLog(@"attr is = %@",attr); }
使用工程应该是这样,这种方法的确可以较快找到相应的节点,只要你对xpath的规则熟悉。
但是不知道哪里出了错误,我的content一直显示不出来,但是相应的节点是对的,因为其属性都可以抓得到。找了好多都不知道原因,如果知道的,麻烦留言告知!
本文转自老Zhan博客园博客,原文链接:http://www.cnblogs.com/mybkn/archive/2012/07/26/2610472.html,如需转载请自行联系原作者
iphone:解析html的第三库hpple初试相关推荐
- Caffe、TensorFlow、MXnet三库对比
Caffe.TensorFlow.MXnet三库对比 Google开源了他们内部使用的深度学习框架TensorFlow,结合之前开源的MXNet和Caffe,对三个开源库做了一些讨论.本文首先对三个库 ...
- 解析TCP连接之“三次握手”和“四次挥手”
葡萄美酒夜光杯,欲饮琵琶马上催. 醉卧沙场君莫笑,古来征战几人回?----唐 · 王翰 · <凉州词> 前言 不管是面试别人还是被别人面试,有很大的可能会被问到TCP的"三次握手 ...
- 黑马程序员_Java解析网络数据流的三种特殊方法
Java解析网络数据流的三种特殊方法 Java作为最开放的语言,已越来越受到网络程序员的青睐.但这一青睐族有着同样的经历--曾经都为网络上通信的Java数据格式而烦恼. 笔者也不例外,曾经为此而查阅了 ...
- 【Android 逆向】arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 分析 malloc 函数的 arm 汇编语言 )
文章目录 一.分析 malloc 函数的 arm 汇编语言 一.分析 malloc 函数的 arm 汇编语言 在上一篇博客 [Android 逆向]arm 汇编 ( 使用 IDA 解析 arm 架构的 ...
- 【Android 逆向】arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 使用 IDA 打开 arm 动态库文件 | 切换 IDA 中汇编代码显示样式 )
文章目录 一.使用 IDA 打开 arm 动态库文件 二.切换 IDA 中汇编代码显示样式 一.使用 IDA 打开 arm 动态库文件 分析 Android SDK 中的 arm 架构的动态库 , 动 ...
- Android init.rc文件解析过程详解(三)
Android init.rc文件解析过程详解(三) 三.相关结构体 1.listnode listnode结构体用于建立双向链表,这种结构广泛用于kernel代码中, android源代码中定义了l ...
- 开发VUE使用第三库,发现有bug怎么办?
写在前面 本文只针对使用vue技术栈,进行讨论. 正文 使用vue技术栈开发,难免会使用第三库,这大大提高了我们开发的效率.然而,这是第三方库有bug怎么办? 既然有bug,就是现有功能没有达到预想效 ...
- android/iphone/windows/linux/微信声波通讯库
声波通讯让传统的各种linux设备,单片机设备等等能编程的设备与智能手机之间有了数据传输的能力,这在智能家居.医疗设备.工业应用等各个行业有了大力应用的机会. 声波通讯让电脑与手机连通:电脑一般都有音 ...
- 三库(开发库、受控库、静态库)的概念和个人理解
记得第一次在国内的坛子里看到三库的讨论的时候,登时就晕了-- 三库的概念被弄得挺严重,甚至被实现为物理上的多个库-- 这里,首先贴一下三库定义的原文.翻译,然后再谈谈个人的理解-- ==原文位置== ...
最新文章
- linux服务器垃圾箱,如何将Linux rm命令删除的文件放入垃圾箱
- 迭代器: isinstance
- 04_传智播客iOS视频教程_类是以Class对象存储在代码段
- 苹果,把充电器还给我们!京沪法学生状告苹果公司欺诈
- pythonflask接口开发处理多线程请求_flask是如何处理多个访问请求的?
- 如何在前端用vue使用字典dicts?
- chrome不能安装adblock插件
- 百度网盘、迅雷下载.torrent种子文件
- ZigBee技术有哪些应用领域?
- 编程入门: 自学编程从哪里开始? [初学参考]
- 都在说CI/CD,到底什么是CI/CD
- 第十二章:(1)Fork/Join 分支合并框架
- adb devices 无法识别手机设备
- 【游戏逆向】某某明月刀_技能冷却分析
- linux 应用编程(持续更新)
- 微速(微锐) 与 打码工作
- 利用html/css设计一个简单个人主页
- matlab卡方分布函数,MATLAB如何使用ncx2pdf函数计算非中心卡方分布的概率密度
- 贤者之路,Cuda block内部矩阵求逆,mxm矩阵 复杂度为O(m)
- 查询linux下有多少用户,Linux 查看系统现存所有用户命令