2012-11-28 58 views
0

这是一个两部分问题,用于处理40MB xml文件。如何比较并查找可可中两个XML文件之间的差异?

•在后台持续运行的程序的内存中存储的合理大小是多少?
•如何查找XML文件中已更改的内容。

所以在第一次读取XML时就加载到NSData中,然后上传到服务器。

现在,不是每次更改时都上传40mb的XML,我宁愿上传只包含更改内容的“增量”文件。程序会监视文件的变化,并在修改时激活。从我所看到的情况来看,我需要解析旧版本的xml文件并解析修改过的xml文件,然后比较它们?每次修改文件时,像这样在内存中存储80mb是不合理的吗?现在我假设这必须用DOM解析器完成,因为我看不到如何用SAX解析器比较两个文件,因为它只存储了部分文件?

我是这个新手,所以任何帮助将不胜感激!

回答

0

的NSXMLParser结束了最有用的这个

0

要比较两个文件:

有很多方法可以做到,(由于文件被认为是,我可能不正确):

sdiff file1.xml file2.xml UNIX命令 您可以使用此命令苹果脚本。

-[NSFileManager contentsEqualAtPath:andPath:] 此方法检查,看看是否在给定的路径两个文件是相同的文件,然后比较它们的大小,最后他们的内容进行比较。

对于其他部分:

被认为是后台进程多大,我不这么认为,因为它重要的应用程序。您可以将它们保存到临时文件中。即使Safari浏览器使用130+ MB,因为您可以通过活动监视器轻松检查。

+0

根据苹果的文档,contentsEqualAtPath:andPath:只返回一个“YES”或“NO”,具体取决于该文件是相同的。所以这不是我正在寻找的东西,我需要知道XML中具体的哪些部分发生了变化。 – urbanrider

+0

让它再次检查....和sdiff怎么样? –

相关问题