¿Cómo puedo analizar este XML en iOS 7? -- ios campo con ios7 campo con nsxmlparser camp Relacionados El problema

How can I parse this xml in iOS 7?


1
vote

problema

Español

Quiero analizar este XML:

  <?xml version="1.0" encoding="UTF-8"?> <eventdata>     <rev></rev>         <event>             <id>  </id>             <name></name>             <thumb> </thumb>             <eimage></eimage>             <artists></artists>             <date></date>             <time> </time>             <cost> </cost>             <discount> </discount>             <gmap> </gmap>             <web>  </web>             <desc> </desc>             <file>                 <src> </src>                 <size> </size>             </file>             <vtype></vtype>             <address></address>             <area></area>             <city></city>             <pcode></pcode>             <lmark></lmark>             <likes></likes>             <hl></hl>             <pref></pref>             <img>  <src> </src>                 <size> </size></img>             <vid>  <src> </src>                 <size> </size></vid>          </event>         <event>             <id>  </id>             <name></name>             <thumb> </thumb>             <eimage></eimage>             <artists></artists>             <date></date>             <time> </time>             <cost> </cost>             <discount> </discount>             <gmap> </gmap>             <web>  </web>             <desc> </desc>             <file>                 <src> </src>                 <size> </size>             </file>             <vtype></vtype>             <address></address>             <area></area>             <city></city>             <pcode></pcode>             <lmark></lmark>             <likes></likes>             <hl></hl>             <pref></pref>             <img>  <src> </src>                 <size> </size></img>             <vid>  <src> </src>                 <size> </size></vid>          </event>         </eventdata>   

Probé este código:

  - (void)viewDidLoad {     [super viewDidLoad];     _currentParsedCharacterData = [[NSMutableString alloc] init];     NSString *path = [[NSBundle mainBundle] pathForResource:@"NewYearPartyData" ofType:@"xml"];     NSData *data = [[NSData alloc] initWithContentsOfFile:path];      NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];     [parser setDelegate:self];      // parsing...     BOOL success = [parser parse];       // test the result     if (success) {         //NSLog(@"No errors - user count : %i", [parser [users count]]);         NSLog(@"Success");         // get array of users here         //  NSMutableArray *users = [parser users];     } else {         NSLog(@"Error parsing document!");     }  }  #pragma mark - NSXMLParser delegate methods  - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {     if ([elementName isEqualToString:@"event"]) {         NSLog(@"user element found â€" create a new instance of User class...");         //user = [[User alloc] init];         //We do not have any attributes in the user elements, but if         // you do, you can extract them here:         // user.att = [[attributeDict objectForKey:@"<att name>"] ...];         NSLog(@"Event Name = %@", [attributeDict objectForKey:@"name"]);         NSLog(@"attributeDict = %@", attributeDict);     }     if ([elementName isEqualToString:@"name"]) {         NSLog(@"attributeDict = %@", attributeDict);         NSLog(@"Event Name = %@", [attributeDict objectForKey:@"name"]);         NSLog(@"elementName = %@", elementName);     } }  - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {     NSLog(@"didEndElement"); }  - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {     NSLog(@"value of element %@", string);  }  - (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError { }   

Alguien que es bueno en NSXMLPARSER: les solicito que me expliquen el flujo.

Mi pregunta básica es "¿Cómo acceder a los datos del evento I.E., ID, nombre, pulgar, etc.?"

Original en ingles

I want to parse this XML:

<?xml version="1.0" encoding="UTF-8"?> <eventdata>     <rev></rev>         <event>             <id>  </id>             <name></name>             <thumb> </thumb>             <eimage></eimage>             <artists></artists>             <date></date>             <time> </time>             <cost> </cost>             <discount> </discount>             <gmap> </gmap>             <web>  </web>             <desc> </desc>             <file>                 <src> </src>                 <size> </size>             </file>             <vtype></vtype>             <address></address>             <area></area>             <city></city>             <pcode></pcode>             <lmark></lmark>             <likes></likes>             <hl></hl>             <pref></pref>             <img>  <src> </src>                 <size> </size></img>             <vid>  <src> </src>                 <size> </size></vid>          </event>         <event>             <id>  </id>             <name></name>             <thumb> </thumb>             <eimage></eimage>             <artists></artists>             <date></date>             <time> </time>             <cost> </cost>             <discount> </discount>             <gmap> </gmap>             <web>  </web>             <desc> </desc>             <file>                 <src> </src>                 <size> </size>             </file>             <vtype></vtype>             <address></address>             <area></area>             <city></city>             <pcode></pcode>             <lmark></lmark>             <likes></likes>             <hl></hl>             <pref></pref>             <img>  <src> </src>                 <size> </size></img>             <vid>  <src> </src>                 <size> </size></vid>          </event>         </eventdata> 

I tried this code:

- (void)viewDidLoad {     [super viewDidLoad];     _currentParsedCharacterData = [[NSMutableString alloc] init];     NSString *path = [[NSBundle mainBundle] pathForResource:@"NewYearPartyData" ofType:@"xml"];     NSData *data = [[NSData alloc] initWithContentsOfFile:path];      NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];     [parser setDelegate:self];      // parsing...     BOOL success = [parser parse];       // test the result     if (success) {         //NSLog(@"No errors - user count : %i", [parser [users count]]);         NSLog(@"Success");         // get array of users here         //  NSMutableArray *users = [parser users];     } else {         NSLog(@"Error parsing document!");     }  }  #pragma mark - NSXMLParser delegate methods  - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {     if ([elementName isEqualToString:@"event"]) {         NSLog(@"user element found xe2x80x93 create a new instance of User class...");         //user = [[User alloc] init];         //We do not have any attributes in the user elements, but if         // you do, you can extract them here:         // user.att = [[attributeDict objectForKey:@"<att name>"] ...];         NSLog(@"Event Name = %@", [attributeDict objectForKey:@"name"]);         NSLog(@"attributeDict = %@", attributeDict);     }     if ([elementName isEqualToString:@"name"]) {         NSLog(@"attributeDict = %@", attributeDict);         NSLog(@"Event Name = %@", [attributeDict objectForKey:@"name"]);         NSLog(@"elementName = %@", elementName);     } }  - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {     NSLog(@"didEndElement"); }  - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {     NSLog(@"value of element %@", string);  }  - (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError { } 

Someone who is good in NSXMLParser - I request them to explain to me the flow.

My basic question is "How to access data of event i.e., id, name, thumb etc?"

        
     
     

Lista de respuestas

3
 
vote
vote
La mejor respuesta
 

NSXMLPARSING es la forma más fácil de analizar los datos. Puede acceder fácilmente a los datos del evento I.E., ID, nombre, pulgar, etc. utilizando el método delegado

  - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {  }   

Puede crear un evento nombrado de clase NSOBJECT. Aquí está mi código

  - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {     if ([elementname isEqualToString:@"id"])         {             event.id = currentNodeContentChapters;         }         if ([elementname isEqualToString:@"name"])         {              event.name = currentNodeContentChapters;         }         if ([elementname isEqualToString:@"thumb"])         {             event.thumb = currentNodeContentChapters;         }         if ([elementname isEqualToString:@"eiimage"])         {             event.eiimageUrl = currentNodeContentChapters;         }        -------------------        ---------------  }   

Esperemos que funcione para usted.

 

NSXMLParsing is the easiest way to parse data. You can easily access data of event i.e., id, name, thumb etc using the delegate method

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {  } 

You can create a NSOBject class named Event. Here is my code

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {     if ([elementname isEqualToString:@"id"])         {             event.id = currentNodeContentChapters;         }         if ([elementname isEqualToString:@"name"])         {              event.name = currentNodeContentChapters;         }         if ([elementname isEqualToString:@"thumb"])         {             event.thumb = currentNodeContentChapters;         }         if ([elementname isEqualToString:@"eiimage"])         {             event.eiimageUrl = currentNodeContentChapters;         }        -------------------        ---------------  } 

Hopefully it will work for you .

 
 

Relacionados problema

6  Subclase de XMLPARSER se bloquea con el inicializador CONTENSEFURL si no hay conectividad, Internet o de otra manera, para obtener los contenidos de la URL  ( Subclass of xmlparser crashes with the contentsofurl initializer if there isnt ) 
Estoy tratando de ordenar una número donde un marco de análisis de alimento ( feedkit ) se bloquea si no hay conectividad para obtener el contenido de la UR...

0  Swift Parser.Parse () devuelve False, pero no ParserError  ( Swift parser parse returns false but no parsererror ) 
Estoy tratando de crear una aplicación de iOS que lea la fuente RSS de un sitio web (en mi caso http: / /www.quest.nl/rss ), analiza la RSS a una vista UITUI...

1  Cargue una imagen de la URL con UIACTATIONYIndicatorView en UiImageView  ( Load an image from url with uiactivityindicatorview on uiimageview ) 
En mi aplicación de iPhone, tengo un UitabelVer lo que llena los datos a través de la URL. Cuando selecciono una celda de UITYVIEW, llama a la URL y descarga ...

0  Programación de iPhone de Xcode: Envío de una cadena de URL analizada desde un archivo XML a través de SEGUE para ser cargado en UiimageView  ( Xcode iphone programming sending a url string parsed from an xml file via segue ) 
Estoy creando una aplicación de iPhone donde se pasan 2 URL desde un archivo XML y se envían desde una vista UITUITY a una vista detallada a través de un Segu...

1  Resultados del análisis XML comienzan desde el último y amplificador; encontrado en el [duplicado]  ( Results of xml parsing start from the last amp found in the ) 
Esta pregunta ya tiene una respuesta aquí : nsxmlparser no obtiene toda la etiqueta si la etiqueta t...

0  Utilizando el método de NSXMLPARSERS "CDATA" encontrado "  ( Using nsxmlparsers found cdata method ) 
Tengo un archivo XML que se parece a esto <comments> <text> <![CDATA[ <!--cached-Tue, 02 Nov 2010 17:50:50 +0000--> ...

0  Velocidad de NSSCANNER VS NSXMLPARSER?  ( Speed of nsscanner vs nsxmlparser ) 
Tengo una aplicación para iPhone que se lee en un archivo XML, luego extrae los datos necesarios al bucle a través de un NSSCANNER. El XML no es particularmen...

1  Cómo esperar a que Nsxmlparser se complete en iOS  ( How to wait for nsxmlparser to complete in ios ) 
Quiero esperar a que se complete el proceso NSXMLPARSER y luego continúe con otros procesos. Utilizo NSXMLPARSER para analizar los datos XML. Este es mi cód...

5  Use NSXMLPARSER solo para analizar los primeros diez postes, luego analizar el lote por separado  ( Use nsxmlparser to only parse the first ten posts then parse next lot separatel ) 
Estoy usando NSXMLPARSER para analizar una fuente RSS. Todo está funcionando bien hasta ahora. Estoy anticipando que el feed RSS eventualmente contiene doce...

0  Envío de información de vuelta del delegado [iPhone]  ( Sending information back from delegate iphone ) 
Estoy usando nsxmlparser en mi archivo rootviewcontroller.m. NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:response_data]; [xmlParser setDeleg...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos