既然你沒有你的標籤內,你可以使用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