如何缓存或存储解析的XML文件?

问题描述:

我的应用程序解析从我的服务器的XML文件,但我想存储解析的XML文件和我的应用程序的下一个开始,控制器首先应该加载存储的XML文件,然后控制器应再次对其进行分析,以检查可能存在的更新我在xml文件上做了,如果有,解析的新元素也应该再次存储。如何缓存或存储解析的XML文件?

我指的是那些应用程序,如杂志,报纸应用程序。当您打开这些应用程序时,它会加载之前会话下载的存储数据。然而,在它加载之后,它开始更新数据,并且它再次存储新的更新。

我从哪里开始?你们有什么建议?

在此先感谢...

您可以使用CoreData或SQLite的(使用Objective-C的包装FMDB https://github.com/ccgus/fmdb),以保存XML。然后每次看到一个唯一的ID时更新数据库。取决于你的XML数据。

它实际上很容易将其存储到文件目录。例如:

NSData *data; //this is your xml file 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docs = [paths objectAtIndex:0]; 
NSString *filename = [NSString stringWithFormat:@"test.xml"]; 
NSString *path = [docs stringByAppendingPathComponent:filename]; 
[data writeToFile:path atomically:YES]; 

然后稍后检索它,你可以得到类似上面的路径,但检索文件,而不是写它:

NSData *data = [NSData dataWithContentsOfFile:path]; 
+0

如果他想经常更新xml并坚持下去,建议不要这样做。 iOS设备Flash只有这么多的写周期,sqlite coredata就是为了这个目的而设计的,而且速度也更快。 – ARC

+0

@尼基塔:公平点。我只是发布这种简单的数据存储方式。对于较大规模的项目以及需要对此文件进行频繁读写访问的项目,您的建议绝对是一条可行的路线。 –

要么CoreData或SQLite的可以做的伎俩