使用NSXMLParser解析xml文件
2011-01-04 14:50
357 查看
1. 设置委托对象,开始解析 NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; //或者也可以使用initWithContentsOfURL直接下载文件,但是有一个原因不这么做: // It's also possible to have NSXMLParser download the data, by passing it a URL, but this is not desirable // because it gives less control over the network, particularly in responding to connection errors. [parser setDelegate:self]; [parser parse]; 2. 常用的委托方法 - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict; - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName; - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string; - (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError; static NSString *feedURLString = @"http://www.yifeiyang.net/test/test.xml"; 3. 应用举例 - (void)parseXMLFileAtURL:(NSURL *)URL parseError:(NSError **)error { NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:URL]; [parser setDelegate:self]; [parser setShouldProcessNamespaces:NO]; [parser setShouldReportNamespacePrefixes:NO]; [parser setShouldResolveExternalEntities:NO]; [parser parse]; NSError *parseError = [parser parserError]; if (parseError && error) { *error = parseError; } [parser release]; } - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString*)qName attributes:(NSDictionary *)attributeDict{ // 元素开始句柄 if (qName) { elementName = qName; } if ([elementName isEqualToString:@"user"]) { // 输出属性值 NSLog(@"Name is %@ , Age is %@", [attributeDict objectForKey:@"name"], [attributeDict objectForKey:@"age"]); } } - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { // 元素终了句柄 if (qName) { elementName = qName; } } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { // 取得元素的text } NSError *parseError = nil; [self parseXMLFileAtURL:[NSURL URLWithString:feedURLString] parseError:&parseError];
相关文章推荐
- Swift-使用NSXMLParser解析XML文件
- swift:使用NSXMLParser解析本地xml文件(详细代码注释)
- ios-使用NSXMLParser解析XML文件
- iOS_使用NSXMLParser解析本地XML文件
- 使用Python 解析XML文件
- 使用pull方式解析xml文件示例:
- 使用DOM解析XML文件
- 使用SAX或者DOM或者pull解析XML文件
- 在config配置文件添加iis的Mime类型,检测文件中是否存在添加语句,使用xml解析方法
- 使用XStream解析和生成xml文件
- cocos2dx使用tinyxml创建和解析xml文件
- 使用PULL解析XML文件
- Android Animation学习(三) ApiDemos解析:XML动画文件的使用
- 【C++】使用libxml解析XML文件
- 使用Python库ElementTree解析Hadoop的xml配置文件
- iOS:使用第三方DOM解析XML文件
- java使用dom4j解析xml配置文件实现抽象工厂反射示例
- 使用XML作为项目的配置文件使用,并解析之,获得数据作为链接数据库的参数
- C++使用tinyxml创建和解析xml文件(本文用于cocos2dx)
- iOS开发中 使用XML和JSON对本地文件进行解析