Ei pessoal, queria saber como faço para usar o analisador NSXML. Então vamos dizer que eu tenho um arquivo xml simples com elementos como 1/1/1000 14:15:16
Como eu poderia usar o NSXMLParser para analisar o arquivo XML (É em localmente btw, desktop), verificar através de cada elemento e armazenar cada um deles em uma matriz para ser exibido / usado mais tarde?
Eu estava olhando através de alguma documentação sobre isso e eu absolutamente não tenho idéia de como usar o parser eu sei que existem 3 methods (ou mais, por favor corrija-me se estou errado) que pode ser substituído – .. .. didStartElement – .. etc didEndElement – .. etc foundCaracters
A coisa mais simples é fazer algo assim:
NSXMLParser *xmlParser = [[NSXMLParser alloc]initWithData:]; [xmlParser setDelegate:self]; [xmlParser parse];
Observe que setDelegate: está configurando o delegado como ‘self’, significando o object atual. Portanto, nesse object, você precisa implementar os methods de delegação mencionados na pergunta.
tão mais abaixo em seu código, cole em:
- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict{ NSLog(@"I just found a start tag for %@",elementName); if ([elementName isEqualToString:@"employee"]){ // then the parser has just seen an opening tag } } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{ NSLog(@"the parser just found this text in a tag:%@",string); }
etc etc.
É um pouco mais difícil quando você quer fazer algo como definir uma variável com o valor de alguma tag, mas geralmente é feito usando uma variável de class chamada algo como ” BOOL inEmployeeTag
” que você definiu como true (YES) no didStartElement
: method e false no didEndElement
: method – e, em seguida, verifique seu valor no método foundCharacters
. Se for sim, você atribui o var ao valor de string e, caso contrário, não.
richard