如何将xml已解析的内容插入到Core Data中

时间:2011-07-12 20:07:21

标签: ios ios4 core-data

我正在开发一个应用程序。我需要一些帮助我无法将我的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

我希望将forecast_condition数据插入到coredata中的实体天气中,我将属性设置为高,低等。

2 个答案:

答案 0 :(得分:0)

很难在不知道任何有关您的数据模型或您尝试做什么的情况下提供细节,但假设您的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中获取值,并使用适当的密钥将它们放入托管对象中。

答案 1 :(得分:0)

查看Jim Dovey的流式XML解析器。他还有一个示例应用程序,展示如何将其与核心数据一起使用

https://github.com/AlanQuatermain/ParserExample