HTML解析
2016-01-19 10:23
597 查看
在工程中添加 Objective-C-HMTL-Parser 文件(4个)
1、url请求,请求得到的数据放到NSData对象中;
NSError *error = nil;
NSError *error1 = nil;
NSURLRequest *request = [NSURLRequest requestWithURL:htmlurl];
//将请求的url数据放到NSData对象中
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
2、将nsdata对象转换成nsstring,nslog输出就是网页的html;
NSString *str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
3、 HTMLParser *parser = [[ HTMLParser alloc ] initWithString :str error :&error1];//初始化
//IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中
if (error) {
}
if (error1) {
}
HTMLNode *bodyNode = [parser body];
NSArray *spanNodes = [bodyNode findChildTags:@"table"];
HTMLNode *bodyNode1 = [spanNodes lastObject];
NSMutableArray *allDataarr = [[NSMutableArray alloc] init];
NSArray *spanNodes1 = [bodyNode1 findChildTags:@"tr"];
NSString *str1 = [[NSString alloc] init];
NSString *strout = [[NSString alloc] init];
for (HTMLNode *bodeNode2 in spanNodes1) {
NSArray *spanNodes2 = [bodeNode2 findChildTags:@"td"];
for (HTMLNode *bodeNode3 in spanNodes2)
{
str1 = [bodeNode3 contents];//取得 包含在bodeNode3节点中的内容;
if (str1==nil) {
str1 = @"";
}
NSString *str2 = [[NSString alloc] init];
NSArray *spanNodes3 = [bodeNode3 findChildTags:@"a"];
if ([spanNodes3 count]>0) {
for (HTMLNode *bodeNode4 in spanNodes3)
{
str2 = [bodeNode4 contents];
}
strout = [str1 stringByAppendingString:str2];
}
else{
strout = str1;
}
[allDataarr addObject:strout];
}
}
1、url请求,请求得到的数据放到NSData对象中;
NSError *error = nil;
NSError *error1 = nil;
NSURLRequest *request = [NSURLRequest requestWithURL:htmlurl];
//将请求的url数据放到NSData对象中
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
2、将nsdata对象转换成nsstring,nslog输出就是网页的html;
NSString *str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
3、 HTMLParser *parser = [[ HTMLParser alloc ] initWithString :str error :&error1];//初始化
//IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中
if (error) {
}
if (error1) {
}
HTMLNode *bodyNode = [parser body];
NSArray *spanNodes = [bodyNode findChildTags:@"table"];
HTMLNode *bodyNode1 = [spanNodes lastObject];
NSMutableArray *allDataarr = [[NSMutableArray alloc] init];
NSArray *spanNodes1 = [bodyNode1 findChildTags:@"tr"];
NSString *str1 = [[NSString alloc] init];
NSString *strout = [[NSString alloc] init];
for (HTMLNode *bodeNode2 in spanNodes1) {
NSArray *spanNodes2 = [bodeNode2 findChildTags:@"td"];
for (HTMLNode *bodeNode3 in spanNodes2)
{
str1 = [bodeNode3 contents];//取得 包含在bodeNode3节点中的内容;
if (str1==nil) {
str1 = @"";
}
NSString *str2 = [[NSString alloc] init];
NSArray *spanNodes3 = [bodeNode3 findChildTags:@"a"];
if ([spanNodes3 count]>0) {
for (HTMLNode *bodeNode4 in spanNodes3)
{
str2 = [bodeNode4 contents];
}
strout = [str1 stringByAppendingString:str2];
}
else{
strout = str1;
}
[allDataarr addObject:strout];
}
}
相关文章推荐
- html自动换行
- 01.HTML 5与HTML4的区别
- 记不住就存下来---- HTML 5 列表相关元素
- html中怎么去掉input获取焦点时候的边框
- 记不住就存下来---- HTML 5 超链接和锚点
- 【性能优化】PHP代码输出压缩后HTML
- HTMLParser使用
- HTML 语言标签
- html-图片button,抓包---Shinepans
- html页面转换成PDF文件
- html xml
- 中文乱码?不,是 HTML 实体编码!(转)
- TextView通过Html显示图片
- 细说HTML元素的ID和Name属性的区别
- MVC4.0 如何设置默认静态首页index.shtml
- HTML disabled属性的启用和禁止
- html注意事项
- .net中单选按钮RadioButton,RadioButtonList 以及纯Html中radio的用法实例?
- html iframe和frame
- 基本的 html 代码