Análisis XML en Cocoa

Hoy estoy buscando cómo hacer un analizador XML simple en Cocoa (para el escritorio). Estoy pensando en utilizar NSXMLParser para analizar los datos, pero no estoy muy seguro de por dónde empezar. El archivo XML en la web no tiene mucha información, solo una lista simple con algunas cosas que necesito guardar en una variable. ¿Alguien tiene alguna sugerencia sobre cómo hacer esto, ya que la documentación en línea sobre esto no tiene demasiado sentido.

¡Gracias por cualquier ayuda!

EDITAR La razón por la que quiero crear un analizador XML es obtener información de una base de datos MYSQL en un servidor para la aplicación cliente. Si hay alguna forma mejor de hacerlo además de un analizador XML, ¡por favor házmelo saber!

Así es como funciona:

Hay una clase llamada NSXMLParser. Se usa para analizar archivos XML. Sin embargo, NSXMLParser es estúpido. Todo lo que sabe hacer es analizar XML, pero no sabe lo que se supone que debe hacer con la información que encuentra.

Ingrese un delegado. Un delegado es como una niñera. Dado que XMLParser no tiene ni idea de qué hacer con la información que encuentra, va y le pregunta a su delegado sobre todas y cada una de las cosas: “¡Oye! ¡Empecé a analizar un documento! ¿Se supone que debo hacer algo?” “¡Oye! ¡Encontré algunos CDATA! ¡Qué se supone que debo hacer con eso!” “¡Oye, encontré otra etiqueta!” “¡Oye! ¡Encontré una etiqueta de cierre!”, Y así sucesivamente. Todos estos “¡Oye!” las declaraciones son métodos delegates, o en otras palabras, son métodos opcionales que un objeto delegado puede elegir implementar. Por lo general (pero no siempre), el objeto que crea NSXMLParser también es el delegado, pero ese no tiene que ser el caso.

Entonces puedes tener algo como esto:

NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:someURLToAnXMLFile]; [parser setDelegate:self]; [parser parse]; [parser release]; 

Luego, en ese mismo objeto (uno mismo), puede tener algunos de estos métodos:

 - (void)parserDidStartDocument:(NSXMLParser *)parser { //the parser started this document. what are you going to do? } - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict { //the parser found an XML tag and is giving you some information about it //what are you going to do? } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { //the parser found some characters inbetween an opening and closing tag //what are you going to do? } - (void)parserDidEndDocument:(NSXMLParser *)parser { //the parser finished. what are you going to do? } 

Hay muchos de estos métodos enumerados en la documentación. Simplemente diríjase a la referencia de la clase NSXMLParser, y todos figuran en la sección “Métodos delegates”. Una vez que te acostumbras, NSXMLParser es bastante fácil de usar. Es un analizador SAX , lo que significa que es un analizador basado en eventos. Encuentra cosas, y te dice acerca de eso.