简体   繁体   English

如何将 xml 解析的内容插入核心数据

[英]How to insert xml parsed contents into Core Data

I am developing an application.我正在开发一个应用程序。 I need some help I cannot insert my nsxml parsed contents into Core Data.我需要一些帮助,我无法将 nsxml 解析的内容插入核心数据。 Is there a specific way to do it?有具体的方法吗?

My code is我的代码是

- (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;        
    }
}

I am stuck and do not know how to get the insert done.我被卡住了,不知道如何完成插入。

http://www.google.com/ig/api?weather=india thats my xml http://www.google.com/ig/api?weather=india那是我的 xml

I wish to insert the forecast_condition data into coredata into an entity Weather which I have attributes as high, low, etc.我希望将 forecast_condition 数据插入 coredata 到一个实体 Weather 中,该实体具有高、低等属性。

Hard to provide specifics without knowing anything about your data model or what your trying to do but it would look something like this assuming your Weather entity has an attribute called pressure :在不了解您的数据 model 或您尝试做什么的情况下很难提供详细信息,但假设您的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;        
    }
}

In short, you need to take values from the parsed xml and put them into your managed objects with the appropriate key.简而言之,您需要从已解析的 xml 中获取值,并使用适当的键将它们放入托管对象中。

Check out Jim Dovey's streaming XML parser.查看 Jim Dovey 的流式 XML 解析器。 He also has an example app that shows how to use it with core data他还有一个示例应用程序,展示了如何将其与核心数据一起使用

https://github.com/AlanQuatermain/ParserExample https://github.com/AlanQuatermain/ParserExample

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM