您的位置:首页 > 移动开发 > IOS开发

iOS 解析xml

2015-12-04 16:36 363 查看
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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: