在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