第一步,先創建一個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