首页 > 代码库 > NSXMLParser(SAX解析)大文件解析
NSXMLParser(SAX解析)大文件解析
NSXMLParser(SAX解析)大文件解析
- (void)viewDidLoad
{
[
[superviewDidLoad];
// 1.创建URL
NSURL *url =HMUrl(@"video?type=XML");
// 2.创建请求
NSURLRequest *request = [NSURLRequestrequestWithURL:url];
// 3.发送请求
[NSURLConnectionsendAsynchronousRequest:requestqueue:[NSOperationQueuemainQueue]completionHandler:^(NSURLResponse*response, NSData *data,NSError *connectionError) {
if (connectionError || data =http://www.mamicode.com/=nil) {
[MBProgressHUDshowError:@"网络繁忙,请稍后再试!"];
return;
}
// 解析XML数据
// 1.创建XML解析器-- SAX --逐个元素往下解析
NSXMLParser *parser = [[NSXMLParseralloc]initWithData:data];
// 2.设置代理
parser.delegate= self;
// 3.开始解析(同步执行)
[parser parse];
// 4.刷新表格
[self.tableViewreloadData];
}];
}
#pragma mark - NSXMLParser的代理方法
/**
* 解析到文档的开头时会调用
*/
- (void)parserDidStartDocument:(NSXMLParser*)parser
{
// NSLog(@"parserDidStartDocument----");
}
/**
* 解析到一个元素的开始就会调用
*
* @param elementName 元素名称
* @param attributeDict 属性字典
*/
- (void)parser:(NSXMLParser*)parser didStartElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qName attributes:(NSDictionary*)attributeDict
{
if ([@"videos"isEqualToString:elementName])return;
HMVideo *video = [HMVideovideoWithDict:attributeDict];
[self.videosaddObject:video];
}
/**
* 解析到一个元素的结束就会调用
*
* @param elementName 元素名称
*/
- (void)parser:(NSXMLParser*)parser didEndElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qName
{
// NSLog(@"didEndElement----%@", elementName);
}
/**
* 解析到文档的结尾时会调用(解析结束)
*/
- (void)parserDidEndDocument:(NSXMLParser*)parser
{
// NSLog(@"parserDidEndDocument----");
}
NSXMLParser(SAX解析)大文件解析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。