[英]How to parse this XML file using Objective C?
我有以下结构的XML文件:
<xmlDocument version="1">
<subject id="1">
<maths marks="65"/>
<science marks="80"/>
<tamil marks="90"/>
<social marks="79"/>
<English marks="70"/>
</subject>
</xmlDocument>
如何使用Objective C解析并获取此数据?
NSXMLParser
实例,并为该解析器分配一个委托。 NSXMLParserDelegate
协议的相关方法。 parse
方法。 由于标记内没有任何文本,因此可以在parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName attributes:(NSDictionary *)attributeDict
使用parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName attributes:(NSDictionary *)attributeDict
方法。 比您可以将值存储在字典或对象中。 如果您有多个subject
标签,则可以使用parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
更改解析器的上下文。 官方文档应为您提供有关可用方法的更多详细信息。
您可以执行类似的操作(不完整的实现):
/*
* Incomplete implementation just to give some pointers
*/
@implementation MyDelegate
-(void) init {
if((self = [super init])) {
_subjects = [NSMutableArray new];
}
}
-(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName attributes:(NSDictionary *)attributeDict {
if([elementName equalsIgnoreCase:@"subject"]) {
_context = [NSMutableDictionary new];
} else {
[_context setObject:[attributeDict valueForKey:@"mark"] forKey:elementName];
}
}
- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName {
[_subjects addObject:_context]
[_context release]; _context = nil;
}
@end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.