Cómo analizar XML para el desarrollo ios

Así que sé cómo analizar algunas estructuras XML, pero actualmente estoy tratando de analizar esta estructura específica de xml que es un poco diferente a lo que estoy acostumbrado.

normalmente analizaría algo como

<xml> <data> <name>Forrest</name> <age>25</name> <username>forrestgrant</username> </data> </xml> 

Pero ahora estoy trabajando con algunos xml como …

 <xml> <data name="Forrest" age="25" username="forrestgrant" /> <other value="6" /> </xml> 

¿Cómo accedo a esas variables cuando están estructuradas de esta manera? Así es como normalmente me acerco a esta tarea, que se basa en search las tags de título y get los datos de cada uno … sin embargo, ahora estoy tratando de averiguar cómo analizar este otro estilo de 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]; } 

Cualquier ayuda sería muy apreciada.

Los datos xml anteriores proporcionan los datos como attributes en el elemento xml.

Este método de callback le da acceso a los attributes como un dictionary de valores key (attributeDict).

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

NSConecte el dictionary en ese método para ver los valores:

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

En su método didStartItem: el dictionary de attributes contendrá valores para todos los attributes XML.