Analizar el valor xml del archivo xml en el servidor de este código de muestra

Creé una aplicación usando un analizador xml de un tutorial. Pero este tutorial resultó ser fácil. En este, un archivo xml se analiza desde el xml local. Pero si necesito analizar un valor del archivo xml, diga www.xxxxx.com /xxx.xml..cómo puedo modificar el código...Orientación por favor...

- (void) applicationDidFinishLaunching:(UIApplication *)application {

// find "sample.xml" in our bundle resources
NSString *sampleXML = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"xml"];
NSData *data = [NSData dataWithContentsOfFile:sampleXML];

// create a new SMXMLDocument with the contents of sample.xml
NSError *error;
SMXMLDocument *document = [SMXMLDocument documentWithData:data error:&error];

// check for errors
if (error) {
    NSLog(@"Error while parsing the document: %@", error);
    return;
}

// demonstrate -description of document/element classes
NSLog(@"Document:\n %@", document);

// Pull out the <books> node
SMXMLElement *books = [document.root childNamed:@"books"];

// Look through <books> children of type <book>
for (SMXMLElement *book in [books childrenNamed:@"book"]) {

    // demonstrate common cases of extracting XML data
    NSString *isbn = [book attributeNamed:@"isbn"]; // XML attribute
    NSString *title = [book valueWithPath:@"title"]; // child node value
    float price = [[book valueWithPath:@"price"] floatValue]; // child node value (converted)

    // show off some KVC magic
    NSArray *authors = [[book childNamed:@"authors"].children valueForKey:@"value"];

    NSLog(@"Found a book!\n ISBN: %@ \n Title: %@ \n Price: %f \n Authors: %@", isbn, title, price, authors);
}
 }

Probé muchos tutoriales durante tantas horas y finalmente me mejoré al usar este código en mi aplicación. Pero necesito importar el archivo xml del servidor ...

preguntado el 04 de julio de 12 a las 08:07

2 Respuestas

Obviamente no voy a escribir todo el código que necesitarías (Server Access + XML Parser + Protocols, para al menos tener una arquitectura decente), esto no es un blog. Asi que:

  1. Comience descargando el archivo XML del servidor. Puedes usar NSURLConnection o puede usar una biblioteca de terceros (MKNetworkKit por ejemplo).
  2. Después de obtener los datos (NSData) del servidor, puede llenar su analizador con él.

En pocas palabras eso es todo. Solo un puntero:

  1. Por favor, simplemente no ponga su analizador XML dentro applicationDidFinishLaunching:, no tiene ningún sentido. Si necesita usarlo cuando el applicationDidFinishLaunching:, es perfectamente válido, cree una clase apropiada para el XML Parser.

Respondido 04 Jul 12, 08:07

No estoy preguntando el código y sé que SO no es para eso... Solo pregunté cuál es la arquitectura o el trabajo básico que tengo que hacer para mi necesidad... y gracias por tu respuesta... - Vishnu

"¿Cómo puedo modificar el código? Orientación, por favor..." - Se han proporcionado orientaciones. Si necesitas más ayuda, házmelo saber, Dany. Lo siento si fui duro, stackoverflow me hizo de esa manera. - rui peres

Bueno, se reduce a 2 cosas: obtener la cadena XML y analizarla. Para obtener el xml, simplemente deberá escribir algo como esto:

NSError *error = nil; NSString *xmlString = [NSString stringWithContentsOfURL:[NSURL urlWithString:@"www.xxxxx.com/xxx.xml"] encoding:NSUTF8StringEncoding error:&error]

Después de eso, alimenta esta cadena a un analizador. Hasta donde yo sé, TBXML es el más rápido y fácil de usar. Puedes obtenerlo de aquí.

Después de eso, debe atravesar los nodos del XML, lo cual es fácil y puede encontrar muchos ejemplos. aquí está algo de documentación.

¡Aclamaciones!

Respondido 04 Jul 12, 08:07

El enlace TBXML que ha adjuntado solo se ocupa del archivo xml estático. ¿Puede hablarme sobre el archivo dinámico? - Vishnu

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.