如何为ios开发解析xml

所以我知道如何解析一些XML结构,但我目前正在尝试解析这个与我习惯的有点不同的特定xml结构。

通常我会解析类似的东西

  Forrest 25 forrestgrant   

但现在我正在使用一些像这样的xml ..

     

如果这些变量的结构如何,我如何访问这些变量? 这就是我通常会接近这个任务的方法,它可以搜索标题标签并从每个标签中获取数据。但是我现在正在试图弄清楚如何解析这种其他风格的xml。

 - (void)startTheParsingProcess:(NSData *)parserData { [myDataArray release]; // clears array for next time it is used. myDataArray = [[NSMutableArray alloc] init]; //initalizes the array NSXMLParser *parser = [[NSXMLParser alloc] initWithData:parserData]; //incoming parserDatapassed to NSXMLParser delegate which starts parsing process [parser setDelegate:self]; [parser parse]; //Starts the event-driven parsing operation. [parser release]; } - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { if ([elementName isEqual:@"item"]) { // NSLog(@"Found title!"); itemString = [[NSMutableString alloc] init]; } } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { [itemString appendString:string]; } - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if ([elementName isEqual:@"item"]) { //NSLog(@"ended title: %@", itemString); [myDataArray addObject:itemString]; //this is where i pass the values over to my array. [itemString release]; itemString = nil; } } - (void)parserDidEndDocument:(NSXMLParser *)parser { // Passes myDataArray to the method that will sort and display the array into a uitableview. [self startSortingTheArray:myDataArray]; } 

任何帮助将不胜感激..

上面的xml数据将数据作为xml元素的属性提供。

此回调方法使您可以将属性作为键值字典(attributeDict)进行访问。

 (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict 

NSLog在该方法中输出字典以查看值:

 NSLog(@"attributes: %@", attributeDict); 

didStartItem:方法中, attributes字典将包含所有XML属性的值。