Objective-C中一个HTMLParser的使用笔记
来源:互联网 发布:广州雅居乐社区办网络 编辑:程序博客网 时间:2024/06/01 20:53
近来需要分析网页HTML元素,在stackoverflow中找到这个开源工具类,特来分享之:
从创建工程开始,新建工程HTMLParserDemo,这里我选择 Command Line Tool
1,将类文件夹拖入项目,直接拖拽近来即可,选项全部用默认
图一
2,包含所有.h文件(#import)
在main.m中引入所有文件,目测只需要 #import "HTMLParser.h",
这时候编译的话 会提示找不到<libxml/HTMLparser.h>
3,在项目设置里面搜索 “header search paths”,添加 "/usr/include/libxml2"
完成后编译应该会12个链接错误,因为找不到符号。
4,添加Framework “libxml2.dylib”==》
手动输入libxml,就能定位到目标,点击add进来即可
现在编译应该可以成功通过。接下来写个demo看看:
static void demo(),里面写上代码:
NSError *error = nil;NSString *html = @"<ul>" "<li><input type='image' name='input1' value='string1value' /></li>" "<li><input type='image' name='input2' value='string2value' /></li>" "</ul>" "<span class='spantext'><b>Hello World 1</b></span>" "<span class='spantext'><b>Hello World 2</b></span>";HTMLParser *parser = [[HTMLParser alloc] initWithString:html error:&error];if (error) { NSLog(@"Error: %@", error); return;}HTMLNode *bodyNode = [parser body];NSArray *inputNodes = [bodyNode findChildTags:@"input"];for (HTMLNode *inputNode in inputNodes) { if ([[inputNode getAttributeNamed:@"name"] isEqualToString:@"input2"]) { NSLog(@"%@", [inputNode getAttributeNamed:@"value"]); //Answer to first question }}NSArray *spanNodes = [bodyNode findChildTags:@"span"];for (HTMLNode *spanNode in spanNodes) { if ([[spanNode getAttributeNamed:@"class"] isEqualToString:@"spantext"]) { NSLog(@"%@", [spanNode rawContents]); //Answer to second question }}[parser release];
在main里面调用,编译运行,可以看到结果:
文章示例代码下载:
http://download.csdn.net/detail/ccnyou/4535746
- Objective-C中一个HTMLParser的使用笔记
- 一个高手的htmlparser笔记
- 一个Python HTMLParser的使用例子
- C#htmlparser的配置与使用
- lucene.net 中htmlparser 的使用
- lucene.net 中htmlparser 的使用
- org.htmlparser.tags 中 TagNode 的使用
- objective-c 中对于类的使用
- Objective-C中NSValue的使用
- Objective-C中NSValue的使用
- objective-c 中NSDictionary的使用
- Objective-c中线程NSThread的使用
- Objective-C中字符串的使用
- Objective-C中数组的使用
- Objective-C中字典的使用
- Objective-C中NSValue的使用
- objective-c中self的使用
- Objective-C中NSValue的使用
- imp导入数据到ORACLE遭遇ORA-12899错误
- 一星期总结:U盘量产与USB-CDROM制作及修改晨枫U盘维护V2.0完全攻略
- CIF/4CIF/QCIF/D1 分辨率
- Oracle中sys,system,scott,hr用户
- 在一台windows/ubuntu机器上同时安装多个tomcat服务器
- Objective-C中一个HTMLParser的使用笔记
- Tomcat配置文件server.xml
- 获取系统时间
- LINQ TO XML
- layoutSubviews在何时调用
- 在vc中调用一般的.exe只需要一个函数
- To 百思不录团队: 百思不录产品设计思路
- oracle----子查询
- 排序(之快速排序)