我想知道如何使用 NSXML 解析器。
假设我有一个简单的 xml 文件,其中包含以下元素:
<Today>
<Date>1/1/1000</Date>
<Time>14:15:16</Time>
</Today>
我如何使用 NSXMLParser 来解析 XML 文件(顺便说一句,它在本地桌面上),检查每个元素并将它们存储在一个数组中以便稍后显示/使用?
我正在浏览一些有关它的文档,但我不知道如何使用解析器
我知道有3种方法(或更多,如果我错了请纠正我)可以被覆盖
-..etc didStartElement
-..etc didEndElement
-..等找到的人物
最简单的事情就是做这样的事情:
NSXMLParser *xmlParser = [[NSXMLParser alloc]initWithData:<yourNSData>];
[xmlParser setDelegate:self];
[xmlParser parse];
请注意,setDelegate: 将委托设置为“self”,即当前对象。因此,在该对象中,您需要实现您在问题中提到的委托方法。
因此,在代码的下方,粘贴:
- (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);
}
等等等等
当您想要执行诸如将变量设置为某个标记的值之类的操作时,会有点困难,但通常是使用名为“的类变量”来完成的BOOL inEmployeeTag
“您在中将其设置为 true (YES)didStartElement
: 方法和 false 中didEndElement
: 方法 - 然后检查它的值foundCharacters
方法。如果是,则将 var 分配给 string 的值,如果不是,则不分配。
richard
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)