世界杯主题曲歌词 / 2025-05-25 16:31:05
简介
iOS SDK的NSXMLParser解析XML文档是事件驱动模式的,即采用SAX方式来解析XML格式文档。NSXMLParser在处理XML文档的过程中当遇到一些要素(元素、属性、CDATA块、评论等)时会通知它的委托,而自身不对解析的要素进行任何处理,全权委托给NSXMLParserDelegate处理。同时它也会报告错误。
使用步骤
1. 加载文件
NSString *pathFile = [[NSBundle mainBundle] bundlePath];
NSString *path = [[NSString alloc] initWithString:[pathFile stringByAppendingPathComponent:@"XMLTest.xml"]];
NSURL *xmlURL = [NSURL fileURLWithPath:path];
NSXMLParser *mparser = [[ NSXMLParser alloc] initWithContentsOfURL:xmlURL];
2. 设置代理
[mparser setDelegate:self];
3、开始解析
BOOL flag = [mparser parse];//会执行代理方法
if(flag) {
NSLog(@"ok");
}else{
NSLog(@"获取指定路径的xml文件失败");
}
//开始解析文件
- (void)parserDidStartDocument:(NSXMLParser *)parser
//遇到节点开始的标志执行,如遇到
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
//遇到节点值或换行时执行,如遇到
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
//遇到节点结束标志时执行,如遇到。换行不会执行该方法
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
//文件解析结束时执行
- (void)parserDidEndDocument:(NSXMLParser *)parser
解析规则
遇到开始节点,如
遇到节点值,如
遇到结束节点,如,执行didEndElement,换行、特殊字符不执行该方法
遇到换行,执行foundCharacters
例子:
//didEndElement--foundCharacters(换行)
//didEndElement--foundCharacters
爸爸去哪儿死亡摇滚