iOS上的NSXMLParser,在给定xml文件的情况下如何使用它
我想知道如何使用NSXML解析器。 假设我有一个简单的xml文件,其中包含如下元素:iOS上的NSXMLParser,在给定xml文件的情况下如何使用它,ios,xml,cocoa,nsxmlparser,Ios,Xml,Cocoa,Nsxmlparser,我想知道如何使用NSXML解析器。 假设我有一个简单的xml文件,其中包含如下元素: <Today> <Date>1/1/1000</Date> <Time>14:15:16</Time> </Today> 1/1/1000 14:15:16 如何使用NSXMLParser解析XML文件(它位于本地桌面上),检查每个元素并将它们存储在一个数组中,以便以后显示/使用 我查阅了一些关于它的文档,但不知道如何使用解析器 我知
<Today>
<Date>1/1/1000</Date>
<Time>14:15:16</Time>
</Today>
1/1/1000
14:15:16
如何使用NSXMLParser解析XML文件(它位于本地桌面上),检查每个元素并将它们存储在一个数组中,以便以后显示/使用
我查阅了一些关于它的文档,但不知道如何使用解析器
我知道有3种方法(或者更多,如果我错了请纠正我)可以被重写
-…等等
-…等等
-…etc foundCharacters最简单的方法是这样做:
NSXMLParser *xmlParser = [[NSXMLParser alloc]initWithData:<yourNSData>];
[xmlParser setDelegate:self];
[xmlParser parse];
NSXMLParser*xmlParser=[[NSXMLParser alloc]initWithData:];
[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);
}
-(void)parser:(NSXMLParser*)parser didStartElement:(NSString*)elementName
namespaceURI:(NSString*)namespaceURI
qualifiedName:(NSString*)qualifiedName
属性:(NSDictionary*)属性指令{
NSLog(@“我刚找到%@”的开始标记,elementName);
if([elementName IsequalString:@“employee”]){
//然后解析器刚刚看到一个开始标记
}
}
-(void)解析器:(NSXMLParser*)解析器查找字符:(NSString*)字符串{
NSLog(@“解析器刚刚在标记中找到此文本:%@”,string);
}
等等等等
当您想将变量设置为某个标记的值时,这会有点困难,但通常是使用类变量caleld完成的,比如“BOOL-inEmployeeTag
”,您将其设置为true(是)在didStartElement
:方法中,在didEndElement
:方法中,检查它在foundCharacters
方法中的值。如果是,则将var赋值给string的值,如果不是,则不赋值
理查德