第一步,先创建一个NSXMLParser对象,可以通过以下的代码:
- (NSXMLParser *)createParserWithXml:(NSString *)fileName {
NSXMLParser *parser;
NSString* path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"xml"];
NSFileHandle* file = [NSFileHandle fileHandleForReadingAtPath:path];
NSData* data = [file readDataToEndOfFile];
[file closeFile];
parser = [[NSXMLParser alloc] initWithData:data];
return parser;
}
第二步,指定一个对象为代理对象,用来接收并处理各种解析中的信息:
[parser setDelegate:self];
第三步,开始解析。。。
[parser parse];
然后在代理类中实现以下几个方法:
//发现元素开始符的处理函数 (即报告元素的开始以及元素的属性)
- (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
//报告不可恢复的解析错误
- (void)paser:parserErrorOccured