XML-SAX解析
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// 创建网络请求
NSURL *url = [NSURL URLWithString:@"http://localhost/resources/vedios.xml"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
// 发送网络请求
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
//
// NSLog(@"%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
// SAX解析
// XML解析器 data:xml数据
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
// 设置代理
parser.delegate = self;
// 开始解析
[parser parse];
}];
}
// 开始解析XML文档的时候,就会调用
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
// NSLog(@"1.开始解析XML文档的时候");
}
// 开始解析元素的时候
// elementName:元素名称
// attributeDict:元素属性
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
// NSLog(@"2.开始解析元素的时候 元素名称:%@",elementName);
NSLog(@"开始解析元素的时候 元素名称:%@ 元素属性:%@",elementName,attributeDict);
}
// 发现元素内容的时候
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
// NSLog(@"3.发现元素内容的时候 元素内容:%@",string);
}
// 元素解析结束的时候
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
// NSLog(@"4.元素解析结束的时候 元素名称%@",elementName);
}
// 解析XML文档结束的时候,就会调用
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
// NSLog(@"5.解析XML文档结束的时候");
}