1.首先引用委托
<NSXMLParserDelegate>
并声明
NSXMLParser变量。
2.开始读取xml内容进行解析
- (IBAction)DoParser:(id)sender {
self.xmlString=@"<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><person id=\"1\"><firstname>尤1</firstname><secondname>吴1</secondname></person><person id=\"2\"><firstname>尤2</firstname><secondname>吴2</secondname></person></root>";
NSData *xmldata=[[NSData alloc]init];
xmldata=[self.xmlString dataUsingEncoding:NSUTF8StringEncoding];
self.xmlParser=[[NSXMLParser alloc]initWithData:xmldata];
[self.xmlParser setDelegate:self];
[self.xmlParser parse];
}
//开始解析
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
NSLog(@"开始处理元素:%@",elementName);
//可获取元素属性
if ([elementName isEqualToString:@"person"]) {
NSLog(@"attributes:%@",[attributeDict objectForKey:@"id"]);
}
}
//完成解析
- (void)parserDidEndDocument:(NSXMLParser *)parser{
if (self.soapResults) {
self.soapResults=nil;
}
}
//元素内的内容
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if (string) {
self.soapResults=string;
}
}
//结束该元素解析后的操作
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:@"person"]) {
//NSLog(@"%@",[NSString stringWithFormat:@"%@",self.soapResults ]);
}
NSLog(@"%@:%@",elementName,self.soapResults);
}
//报错时的操作
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
NSLog(@"%@",parseError);
if (self.soapResults) {
self.soapResults=nil;
}
}
原文:http://www.cnblogs.com/youyuan1980/p/5019708.html