今天搞了一天,想用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初试相关推荐

  1. Caffe、TensorFlow、MXnet三库对比

    Caffe.TensorFlow.MXnet三库对比 Google开源了他们内部使用的深度学习框架TensorFlow,结合之前开源的MXNet和Caffe,对三个开源库做了一些讨论.本文首先对三个库 ...

  2. 解析TCP连接之“三次握手”和“四次挥手”

    葡萄美酒夜光杯,欲饮琵琶马上催. 醉卧沙场君莫笑,古来征战几人回?----唐 · 王翰 · <凉州词> 前言 不管是面试别人还是被别人面试,有很大的可能会被问到TCP的"三次握手 ...

  3. 黑马程序员_Java解析网络数据流的三种特殊方法

    Java解析网络数据流的三种特殊方法 Java作为最开放的语言,已越来越受到网络程序员的青睐.但这一青睐族有着同样的经历--曾经都为网络上通信的Java数据格式而烦恼. 笔者也不例外,曾经为此而查阅了 ...

  4. 【Android 逆向】arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 分析 malloc 函数的 arm 汇编语言 )

    文章目录 一.分析 malloc 函数的 arm 汇编语言 一.分析 malloc 函数的 arm 汇编语言 在上一篇博客 [Android 逆向]arm 汇编 ( 使用 IDA 解析 arm 架构的 ...

  5. 【Android 逆向】arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 使用 IDA 打开 arm 动态库文件 | 切换 IDA 中汇编代码显示样式 )

    文章目录 一.使用 IDA 打开 arm 动态库文件 二.切换 IDA 中汇编代码显示样式 一.使用 IDA 打开 arm 动态库文件 分析 Android SDK 中的 arm 架构的动态库 , 动 ...

  6. Android init.rc文件解析过程详解(三)

    Android init.rc文件解析过程详解(三) 三.相关结构体 1.listnode listnode结构体用于建立双向链表,这种结构广泛用于kernel代码中, android源代码中定义了l ...

  7. 开发VUE使用第三库,发现有bug怎么办?

    写在前面 本文只针对使用vue技术栈,进行讨论. 正文 使用vue技术栈开发,难免会使用第三库,这大大提高了我们开发的效率.然而,这是第三方库有bug怎么办? 既然有bug,就是现有功能没有达到预想效 ...

  8. android/iphone/windows/linux/微信声波通讯库

    声波通讯让传统的各种linux设备,单片机设备等等能编程的设备与智能手机之间有了数据传输的能力,这在智能家居.医疗设备.工业应用等各个行业有了大力应用的机会. 声波通讯让电脑与手机连通:电脑一般都有音 ...

  9. 三库(开发库、受控库、静态库)的概念和个人理解

    记得第一次在国内的坛子里看到三库的讨论的时候,登时就晕了-- 三库的概念被弄得挺严重,甚至被实现为物理上的多个库-- 这里,首先贴一下三库定义的原文.翻译,然后再谈谈个人的理解-- ==原文位置== ...

最新文章

  1. linux服务器垃圾箱,如何将Linux rm命令删除的文件放入垃圾箱
  2. 迭代器: isinstance
  3. 04_传智播客iOS视频教程_类是以Class对象存储在代码段
  4. 苹果,把充电器还给我们!京沪法学生状告苹果公司欺诈
  5. pythonflask接口开发处理多线程请求_flask是如何处理多个访问请求的?
  6. 如何在前端用vue使用字典dicts?
  7. chrome不能安装adblock插件
  8. 百度网盘、迅雷下载.torrent种子文件
  9. ZigBee技术有哪些应用领域?
  10. 编程入门: 自学编程从哪里开始? [初学参考]
  11. 都在说CI/CD,到底什么是CI/CD
  12. 第十二章:(1)Fork/Join 分支合并框架
  13. adb devices 无法识别手机设备
  14. 【游戏逆向】某某明月刀_技能冷却分析
  15. linux 应用编程(持续更新)
  16. 微速(微锐) 与 打码工作
  17. 利用html/css设计一个简单个人主页
  18. matlab卡方分布函数,MATLAB如何使用ncx2pdf函数计算非中心卡方分布的概率密度
  19. 贤者之路,Cuda block内部矩阵求逆,mxm矩阵 复杂度为O(m)
  20. 查询linux下有多少用户,Linux 查看系统现存所有用户命令

热门文章

  1. 蓝桥杯 ALGO-74 算法训练 连接字符串
  2. L1-002. 打印沙漏-PAT团体程序设计天梯赛GPLT
  3. iOS开发之touchesCancelled
  4. Linux使用SSH上传下载文件,linux下用ssh上传,下载文件
  5. 实用hostname查看主机名的步骤
  6. oracle 添加外键,报“未找到父项关键字”
  7. 学习共享--产品思维
  8. Azure角色管理技巧和工具
  9. Hadoop如何迎击大数据分析的挑战
  10. C Primer Plus 第8章 字符输入/输出和输入确认 8.11 编程练习答案