XML 解析
- (void)parserDidStartDocument:(NSXMLParser *)parser {
NSLog(@"1. 开始文档");
[self.videos removeAllObjects];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
NSLog(@"2. 开始节点 %@ %@", elementName, attributeDict);
if ([elementName isEqualToString:@"video"]) {
self.currentVideo = [[Video alloc] init];
self.currentVideo.videoId = @([attributeDict[@"videoId"] integerValue]);
}
[self.elementString setString:@""];
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
NSLog(@"==> %@", string);
[self.elementString appendString:string];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
NSLog(@"4. 结束节点 %@", elementName);
if ([elementName isEqualToString:@"video"]) {
[self.videos addObject:self.currentVideo];
} else if (![elementName isEqualToString:@"videos"]) {
[self.currentVideo setValue:self.elementString forKey:elementName];
}
}
- (void)parserDidEndDocument:(NSXMLParser *)parser {
NSLog(@"5. 解析结束");
NSLog(@"%@ %@", self.videos, [NSThread currentThread]);
}