您的位置:首页 > Web前端 > HTML

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];
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: