IOS解析XML文件

互联网 17-2-20
这里使用NSXMLParser来解析,这个是apple自带的xml解析库,有个参考文章:http://www.php.cn/

在Xcode中加入一个xml文件:

<?xml version="1.0" encoding="ISO-8859-1"?>  <root>  <Shop shoplocation="beijing">      <id>001</id>      <name>John</name>      <url>Reminder</url>      <info>Don't forget the meeting!</info>  </Shop>  <Shop shoplocation="dongcheng">      <id>002</id>      <name>Jack</name>      <url>cc</url>      <info>how are you!</info>  </Shop>  <Shop shoplocation="haidian">      <id>003</id>      <name>Tom</name>      <url>bb</url>      <info>I am fine!</info>  </Shop>  </root>

   NSString* path =  [[NSBundle mainBundle] pathForResource:@"shop" ofType:@"xml"];      NSData *data = [[NSData alloc] initWithContentsOfFile:path options:(NSDataReadingMappedIfSafe) error:nil];      NSXMLParser *parser=[[NSXMLParser alloc] initWithData:tmpdata];  <span style="white-space:pre">	</span>[parser setDelegate:self];  	[parser parse];  	[parser release];      [self parseShopListFromResponse:data];

然后进行解析:

#pragma mark NSXMLParser delegate methods  - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName    namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *)qName  	attributes: (NSDictionary *)attributeDict {      self.currentTag = elementName;  	if ([elementName isEqualToString:@"root"]) {  		self.tmpList = [[NSMutableArray alloc] init];  	}else if ([elementName isEqualToString:@"Shop"]) {  		self.tmpShop = [[ShopData alloc] init];          NSArray* array = [attributeDict allKeys];          NSString* key = [array lastObject];          NSString*s  = [attributeDict objectForKey:key];          self.tmpShop.info = s;  	}  }    -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {      if (self.currentString == nil) {          self.currentString = [[NSMutableString alloc] initWithString:@""];      }            if ([self.currentTag isEqualToString:@"name"] ||          [self.currentTag isEqualToString:@"id"] ||          [self.currentTag isEqualToString:@"url"] ||          [self.currentTag isEqualToString:@"info"]) {          [self.currentString appendString:string];  	}  }    -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {     	if ([elementName isEqualToString:@"Shop"]) {  		[self.tmpList addObject:self.tmpShop];          [self.tmpShop release];  	} if ([elementName isEqualToString:@"name"]) {          self.tmpShop.name = [self.currentString copy];          [self.currentString setString:@""];  	}else if ([elementName isEqualToString:@"id"]) {  		self.tmpShop._id = [self.currentString copy];          [self.currentString setString:@""];  	}else if ([elementName isEqualToString:@"url"]) {  		self.tmpShop.url = [self.currentString copy];          [self.currentString setString:@""];  	}else if ([elementName isEqualToString:@"info"]) {  //		self.tmpShop.info = [self.currentString copy];  //        [self.currentString setString:@""];  	}  }    - (void)parserDidStartDocument:(NSXMLParser *)parser {  	NSLog(@"开始解析xml文件");  }    - (void)parserDidEndDocument:(NSXMLParser *)parser {  	  	[self.tableView reloadData];  	NSLog(@"解析xml文件完成");  }

Shopdata的结构是:

@property (nonatomic,retain) NSString *name;  @property (nonatomic,retain) NSString *url;  @property (nonatomic,retain) NSString *_id;  @property (nonatomic,retain) NSString *info;  @property (nonatomic, retain) UIImage *appIcon;

以上就是IOS解析XML文件 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: IOS,ML文件
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:如何建立一个 XML 的开发环境

相关资讯