如何使用NSXMLParser解析此类型的XML
<category> <categoryName> userName</categoryName> <categoryName>password</categoryName><category>
答案 0 :(得分:1)
在h文件中声明数组和字符串,如:
NSMutableArray *aryCategory;
NSString *strCategroyName;
<。>在.m文件中用于启动解析器使用:
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:yourData]; // your data will be instance of NSData or NSMutableData
parser.delegate = self;
[parser parse];
这将在您获取xml数据后完成。要处理结果,您可以使用NSXMLParserDelegate
,如下所示:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if ([elementName isEqualToString:@"category"]) {
aryCategory = [[NSMutableArray alloc] init];
strCategroyName = @"";
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
strCategroyName = [NSString stringWithFormat:@"%@%@", strCategroyName, string];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"categoryName"]) {
[aryCategory addObject:strCategroyName];
strCategroyName = @"";
}
}
现在,您将使用所有类别名称填充数组。
希望这会有所帮助:)
答案 1 :(得分:0)
将<category>
写在didStart
和didEnd
元素中,这些元素是解析器的代理。