00001
00002
00003
00004
00005
00006
00007
00008
00009 #import "TDTasksParser.h"
00010
00011
00012 @implementation TDTasksParser
00013
00014 - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
00015 NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
00016 [inputFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
00017
00018 if ([elementName isEqualToString:@"task"]) {
00019 currentTask = [[GtdTask alloc] init];
00020 currentTask.uid = [[attributeDict valueForKey:@"id"] intValue];
00021 currentTask.title = [[attributeDict valueForKey:@"title"] stringValue];
00022 currentTask.date_created = [inputFormatter dateFromString:[attributeDict valueForKey:@"added"]];
00023 currentTask.date_modified = [inputFormatter dateFromString:[attributeDict valueForKey:@"modified"]];
00024 currentTask.date_start = [inputFormatter dateFromString:[attributeDict valueForKey:@"startdate"]];
00025 currentTask.date_due = [inputFormatter dateFromString:[attributeDict valueForKey:@"duedate"]];
00026 currentTask.tag = [[attributeDict valueForKey:@"tag"] stringValue];
00027 currentTask.folder = [[attributeDict valueForKey:@"folder"] intValue];
00028 currentTask.context = [[attributeDict valueForKey:@"context"] intValue];
00029 currentTask.priority = [[attributeDict valueForKey:@"priority"] intValue];
00030 currentTask.completed = [inputFormatter dateFromString:[attributeDict valueForKey:@"completed"]];
00031 currentTask.length = [[attributeDict valueForKey:@"length"] intValue];
00032 currentTask.note = [[attributeDict valueForKey:@"note"] stringValue];
00033 currentTask.star = [[attributeDict valueForKey:@"star"] boolValue];
00034 currentTask.repeat = [[attributeDict valueForKey:@"repeat"] intValue];
00035
00036 currentTask.status = [[attributeDict valueForKey:@"status"] intValue];
00037 currentTask.reminder = [[attributeDict valueForKey:@"reminder"] intValue];
00038 currentTask.parentId = [[attributeDict valueForKey:@"parent"] intValue];
00039 }
00040 }
00041
00042 - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
00043 if ([elementName isEqualToString:@"task"]) {
00044 currentTask.title = currentString;
00045 [results addObject:currentTask];
00046 [currentTask release];
00047 currentTask = nil;
00048 }
00049
00050 [currentString release];
00051 currentString = nil;
00052 }
00053
00054 @end