Как вставить проанализированный XML-контент в Core Data - PullRequest
0 голосов
/ 13 июля 2011

Я занимаюсь разработкой приложения. Мне нужна помощь, я не могу вставить мое проанализированное nsxml содержимое в Core Data. Есть ли конкретный способ сделать это?

Мой код

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
        namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    if ([@"forecast_conditions" isEqualToString:elementName]) {
        isParsingForecast = NO;
        NSManagedObjectContext *moc=[self managedObjectContext];
        NSEntityDescription *entity = [NSEntityDescription 
            entityForName:@"Weather" inManagedObjectContext:moc];
        if([elementName isEqualToString:@"low"])
        {

        }
    }
    else if([@"forecast_information" isEqualToString:elementName]){
        isParsingInformation=NO;        
    }
}

Я застрял и не знаю, как сделать вставку.

http://www.google.com/ig/api?weather=india вот мой xml

Я хочу вставить данные прогнозируемого условия в coredata в объект Weather, который у меня имеет атрибуты высокого, низкого и т. Д.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2011

Проверьте потоковый парсер XML Джима Дови.У него также есть пример приложения, которое показывает, как использовать его с основными данными

https://github.com/AlanQuatermain/ParserExample

0 голосов
/ 14 июля 2011

Трудно предоставить подробности, не зная ничего о вашей модели данных или о том, что вы пытаетесь сделать, но это выглядело бы примерно так, если бы у вашей Weather сущности был атрибут pressure:

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
        namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    if ([@"forecast_conditions" isEqualToString:elementName]) {
        isParsingForecast = NO;
        NSManagedObjectContext *moc=[self managedObjectContext];
        NSEntityDescription *entity = [NSEntityDescription 
            entityForName:@"Weather" inManagedObjectContext:moc];
        if([elementName isEqualToString:@"low"])
        {
          [entity setValue:elementName forKey:@"pressure"];
        }
    }
    else if([@"forecast_information" isEqualToString:elementName]){
        isParsingInformation=NO;        
    }
}

Короче говоря, вам нужно взять значения из проанализированного xml и поместить их в ваши управляемые объекты с соответствующим ключом.

...