objective c - Importing 100MB XML file into iOS Core Data Model -


in app need import 100mb xml file core data model.

so far, i've imported 100kb xml file , works fine. however, not sure how long takes import 100mb xml. run tonite, in while.. think approach ?

thanks

nsmanagedobjectcontext * context = [self managedobjectcontext];      // delete documents     nsfetchrequest * fetch = [[[nsfetchrequest alloc] init] autorelease];     [fetch setentity:[nsentitydescription entityforname:@"document" inmanagedobjectcontext:context]];     nsarray * result = [context executefetchrequest:fetch error:nil];     (id basket in result)         [context deleteobject:basket];        //insert documents     tbxml * tbxml = [[tbxml tbxmlwithxmlfile:@"categ_small.xml"] retain];     tbxmlelement * root = tbxml.rootxmlelement;     tbxmlelement * doc = [tbxml childelementnamed:@"doc" parentelement:root];      {         tbxmlelement * iddoc = [tbxml childelementnamed:@"id" parentelement:doc];         tbxmlelement * titledoc = [tbxml childelementnamed:@"title" parentelement:doc];         tbxmlelement * descriptiondoc = [tbxml childelementnamed:@"description" parentelement:doc];         tbxmlelement * time = [tbxml childelementnamed:@"time" parentelement:doc];         tbxmlelement * tags = [tbxml childelementnamed:@"tags" parentelement:doc];         tbxmlelement * geo = [tbxml childelementnamed:@"geo" parentelement:doc];         tbxmlelement * event = [tbxml childelementnamed:@"event" parentelement:doc];         tbxmlelement * user = [tbxml childelementnamed:@"user" parentelement:doc];         tbxmlelement * categ = [tbxml childelementnamed:@"categ" parentelement:doc];          nsmanagedobject *newdocument = [nsentitydescription                                         insertnewobjectforentityforname:@"document"                                         inmanagedobjectcontext:context];          [newdocument setvalue:[tbxml textforelement:iddoc] forkey:@"iddoc"];         [newdocument setvalue:[tbxml textforelement:titledoc] forkey:@"titledoc"];         [newdocument setvalue:[tbxml textforelement:descriptiondoc] forkey:@"descriptiondoc"];         [newdocument setvalue:[tbxml textforelement:time] forkey:@"time"];         [newdocument setvalue:[tbxml textforelement:tags] forkey:@"tags"];         [newdocument setvalue:[tbxml textforelement:geo] forkey:@"geo"];         [newdocument setvalue:[tbxml textforelement:event] forkey:@"event"];         [newdocument setvalue:[tbxml textforelement:user] forkey:@"user"];         [newdocument setvalue:[tbxml textforelement:categ] forkey:@"categ"];      } while ((doc = doc->nextsibling));   

update one-time operation runs in simulator only, , won't deployed final application.

i'd following steps:

  • write converter xml->sqlite ruby or php, or if not friend of scripting languages have @ sqlite manager it's firefox plugin manage sqlite database , it's capable of importing xml.

  • prepopulate core-data shipping following tutorial: how preload/import existing data


Comments

Popular posts from this blog

c# - how to write client side events functions for the combobox items -

exception - Python, pyPdf OCR error: pyPdf.utils.PdfReadError: EOF marker not found -