在iPhone上的NSXMLParser,我如何使用它给一个XML文件(newb在这里:\)

问题描述:

嘿家伙,想知道我如何使用NSXML分析器。 因此,可以说给我有一个元素简单的XML文件中像 1000年1月1日 14点15分16秒 在iPhone上的NSXMLParser,我如何使用它给一个XML文件(newb在这里:)

我怎么能使用的NSXMLParser解析XML文件(及其对本地顺便说一句,桌面),检查每个元素并将它们中的每一个存储在一个数组中,以便稍后显示/使用?

我一直在寻找通过一些关于它的资料,我绝对有关于如何使用的解析器 我知道有3种方法不知道(或更多,请纠正我,如果我错了),可以覆盖 - 。 .etc didStartElement - ..等等didEndElement - ..等foundCharacters

最简单的事情就是做这样的事情:

NSXMLParser *xmlParser = [[NSXMLParser alloc]initWithData:<yourNSData>]; 
[xmlParser setDelegate:self]; 
[xmlParser parse]; 

注意setDelegate:被委托设置为 '自我',意义当前对象。因此,在这个对象中,你需要实现你在问题中提到的委托方法。

所以在你的代码进一步下降,粘贴在:

- (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 <employee> opening tag 
     }   
    } 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{ 
NSLog(@"the parser just found this text in a tag:%@",string); 
} 

等等,等等

这是一个有点困难,当你想要做的事等设定的变量一些变量的值,但通常使用类变量caleld完成,如“BOOL inEmployeeTag”,您在didStartElement:方法中设置为true(是),在didEndElement:方法中设为false - 然后在foundCharacters方法中检查它的值。如果是,则将var分配给字符串的值,如果不是,则不要。

richard