在Xcode中加入一个xml文件:
001 John Reminder Don't forget the meeting! 002 Jack cc how are you! 003 Tom bb I am fine!
先读出来
NSString* path = [[NSBundle mainBundle] pathForResource:@"shop" ofType:@"xml"]; NSData *data = [[NSData alloc] initWithContentsOfFile:path options:(NSDataReadingMappedIfSafe) error:nil]; NSXMLParser *parser=[[NSXMLParser alloc] initWithdata:tmpdata];[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.kaotop.com)!



