Análise de XML no cacau

Hoje estou estudando como criar um analisador XML simples no Cocoa (para a área de trabalho). Estou pensando em usar o NSXMLParser para analisar os dados, mas não tenho certeza de onde começar. O arquivo XML na web não possui muitos dados, apenas uma listview simples com algumas coisas que preciso salvar em uma variável. Alguém tem alguma sugestão sobre como fazer isso, como a documentação on-line sobre isso não está fazendo muito sentido.

Obrigado por qualquer ajuda!

EDIT O motivo pelo qual estou querendo criar um analisador XML é obter informações de um database MYSQL em um servidor para o aplicativo cliente. Se houver alguma maneira melhor de fazer isso além de um analisador de XML, por favor me avise!

Veja como isso funciona:

Há uma class chamada NSXMLParser. É usado para analisar arquivos XML. No entanto, NSXMLParser é estúpido. Tudo o que ela sabe fazer é analisar XML, mas não sabe o que deve fazer com a informação que encontra.

Digite um delegado. Um delegado é como uma babá. Como o XMLParser não tem a menor idéia do que fazer com as informações que encontra, ele pergunta ao seu delegado sobre cada coisa: “Ei! Comecei a analisar um documento! Eu deveria fazer alguma coisa?” “Hey! Eu encontrei alguns CDATA! O que eu devo fazer com isso!” “Hey! Eu encontrei outra tag!” “Ei! Eu encontrei uma tag de fechamento!”, E assim por diante. Todos esses “Hey!” instruções são methods delegates ou, em outras palavras, são methods opcionais que um object delegado pode escolher implementar. Normalmente (mas nem sempre), o object que cria o NSXMLParser também é o delegado, mas isso não precisa ser o caso.

Então você pode ter algo assim:

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

Então, nesse mesmo object (self), você pode ter alguns desses methods:

 - (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? } 

Há um monte desses methods listados na documentação. Simplesmente vá para a referência de class NSXMLParser e todas elas estão listadas na seção “Delegar methods”. Depois de pegar o jeito, o NSXMLParser é muito fácil de usar. É um SAX Parser , o que significa que é um analisador baseado em events. Encontra coisas, e fala sobre isso.