Here to use NSXMLParser to parse, this is apple's xml parsing library, there is a reference: http://www.raywenderlich.com/553/xml-tutorial-for-ios-how-to-choose-the-best-xml-parser-for-your-iphone-project
Add an xml file to Xcode:
<?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>
Read it first
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];
Then parse:
@ Property (nonatomic, retain) ShopData * tmpShop; @ property (nonatomic, retain) NSMutableString * currentString; @ property (nonatomic, retain) NSString * currentTag; # pragma mark NSXMLParser delegate methods-(void) parser :( NSXMLParser *) parser principal :( NSString *) elementName namespaceURI :( NSString *) namespaceURI principal :( NSString *) Principal: (NSDictionary *) attributeDict {self. currentTag = elementName; if ([elementName isinclutostring: @ "root"]) {self. tmpList = [[NSMutableArray alloc] init];} else if ([elementName is1_tostring: @ "Shop"]) {self. tmpShop = [[ShopData alloc] init]; <span style = "white-space: pre"> </span> <span style = "font-family: Arial, Helvetica, sans-serif; "> </span> <span class =" s1 "style =" font-family: Arial, Helvetica, sans-serif; "> NSArray </span> <span style =" font-family: Arial, Helvetica, sans-serif; "> * array = [attributeDict </span> <span class =" s2 "style =" font-family: Arial, Helvetica, sans-serif; "> allKeys </span> <span style =" font-family: Arial, Helvetica, sans-serif; ">]; </span> <p class = "p1"> <span style = "white-space: pre "> </span> <span class =" s1 "> NSString </span> * key = [array <span class =" s2 "> lastObject </span>]; </p> <p class = "p1"> <span style = "white-space: pre "> </span> <span class =" s1 "> NSString </span> * s = [attributeDict <span class =" s2 "> objectForKey </span>: key]; </p> <p class = "p1"> <span style = "white-space: pre "> </span> <span class =" s3 "> self </span>. <span class = "s4"> tmpShop </span>. <span class = "s4"> info </span> = s; // obtain the ShopLocation attribute </p >}}-(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 isinclutostring: @ "Shop"]) {[self. tmpList addObject: self. tmpShop]; [self. tmpShop release];} if ([elementName isinclutostring: @ "name"]) {self. tmpShop. name = [self. currentString copy]; [self. currentString setString: @ ""];} else if ([elementName isinclutostring: @ "id"]) {self. tmpShop. _ id = [self. currentString copy]; [self. currentString setString: @ ""];} else if ([elementName isinclutostring: @ "url"]) {self. tmpShop. url = [self. currentString copy]; [self. currentString setString: @ ""];} else if ([elementName isinclutostring: @ "info"]) {self.tmpShop.info = [self. currentString copy]; [self. currentString setString: @ ""] ;}}-(void) parserDidStartDocument :( NSXMLParser *) parser {NSLog (@ "Start parsing xml file");}-(void) parserDidEndDocument :( NSXMLParser *) parser {[self. tableView reloadData]; NSLog (@ "xml file parsed ");}
The Shopdata structure is:
@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;
The code can be downloaded at http://download.csdn.net/detail/baidu_nod/7585037without points required