这里使用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 *)qNameattributes: (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. android使用XmlPullParser来解析XML文件
  2. android如何使用DOM和SAXParserFactory来解析XML文件
  3. Java&Xml教程(三)使用DOM方式修改XML文件内容
  4. Java&Xml教程(二)使用DOM方式解析XML文件
  5. Java&Xml教程(四)使用DOM方式生成XML文件
  6. Java&Xml教程(六)使用JDOM解析XML文件
  7. Java&Xml教程(五)使用SAX方式解析XML文件
  8. Java&Xml教程(七)使用JDOM修改XML文件内容
  9. Java&Xml教程(十)XML作为属性文件使用

随机推荐

  1. 你对进程线程到底理解有多少
  2. 认知 | 学习编程的两大误区
  3. Java语言程序设计(四)类型转换及转义字符
  4. 总结 | 做公众号第一个月心得
  5. 感情 | 小鹿的大学恋爱史
  6. Java语言程序设计(五)从对话框获取输入及St
  7. Java中级进阶之集合框架比较
  8. 入门|你所不知道编程入门的重要性
  9. Java语言程序设计(六)对话框应用实例及随机
  10. 方向 | 2018 选择 Android 还是 Python?