XML解析器 NSXMLParser

来源:互联网 发布:明道软件怎么样 编辑:程序博客网 时间:2024/05/17 00:11

 构建XML解析

//1, 构建解析方法
-(void)parseXMLFile:(NSURL *)XMLURL //XMLURL为第一个文件的URL{NSXMLParser *eventParser = [[NSXMLParser alloc] initWithContentsOfURL:XMLURL];[eventParser setDelegate:self];  //设置代理为本地[eventParser parse];  //开始解析 NSLog(@"end Of parseXMLFile");}
//2, 解析开始后,所有XML的内容由NSXMLParserDelegate处理//  所以一定要注意在本地添加<NSXMLParserDelegate>到文件头
//在NSXMLParser读到<p>的时候重写一个<p>标签,原来的是XML中的,无法直接使用- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{if ([elementName isEqualToString:@"p"]) {[htmlDataString appendFormat:@"<p>"];needOrNot = YES;  //我们需要<p>和</p>中间的内容,其余的在end中设置NOreturn;}} - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{if(needOrNot){[htmlDataString appendString:string]; //如上,将需要的字段添加到得到的html结构String中}} - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{if ([elementName isEqualToString:@"p"]) {[htmlDataString appendFormat:@"</p>"];needOrNot = NO;  //不需要的内容不允许上面的delegate去读取到htmlDataString中return;}} - (void)parserDidEndDocument:(NSXMLParser *)parser{NSLog(htmlDataString); //在结束后输出得到的html数据结构.}
原创粉丝点击