解析具有相同名称的元素? [英] Parse elements with the same name?
本文介绍了解析具有相同名称的元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用NSXMLParser,但我有一些他们有相同名称的元素。所以我想知道如何以不同的方式解析它们?
I use NSXMLParser but i have some elements that they have the same name. So i want to know how can i parse them differently?
<hours type="array">
<hour>
<name>Lun - Dim</name>
<value>19:00 - 01:00</value>
</hour>
</hours>
<categories type="array">
<category>
<name>Cuisine indienne</name>
<value>indian</value>
</category>
</categories>
推荐答案
这是一个粗略的例子:
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
if ([elementName isEqualToString:@"hours"]) {
//Tells us we are in hours group
_isInHoursGroup = YES;
//Get our hour object ready
_myHourObject = [MyHourObject alloc] init];
return;
}
if ([elementName isEqualToString:@"categories"]) {
_isInCategoriesGroup = YES;
_myCategoryObject = [MyCategoryObject alloc] init];
return;
}
}
然后:
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"hours"]) {
_isInHoursGroup = NO;
return;
}
if ([elementName isEqualToString:@"categories"]) {
_isInCategoriesGroup = NO;
return;
}
if (_isInHoursGroup && [didEndElement isEqualToString:@"name"]) {
//Assumes you have _currentValue variable with the current value in it.
_myHourObject.myPropert = _currentValue;
return;
}
if (_isInCategoriesGroup && [didEndElement isEqualToString:@"name"]) {
//Assumes you have _currentValue variable with the current value in it.
_myCategoryObject.myPropert = _currentValue;
return;
}
}
这篇关于解析具有相同名称的元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文