比较Objective-C中的两个xml文件

Sja*_*ien 5 compare file objective-c

我的文件系统(iPhone)中有两个xml文件(a.xml和b.xml).现在我想知道这些文件是否包含完全相同的数据.大多数情况下,这种比较都是正确的,因为b.xml是copyItemAtPath:操作的结果.除非它被更新的信息覆盖.比较这些文件最有效的方法是什么?

  1. 我可以将文件的内容作为字符串读取,然后比较字符串
  2. 我可以解析文件并比较一些关键元素
  3. 我想有一种非常生硬的方式,不需要解释文件,但允许我在较低级别进行比较.

任何建议都是非常受欢迎的.

谢谢你

Sjakelien

更新:

我最终这样做了:

oldData = [NSData dataWithContentsOfFile:PathToAXML];
newData = [NSData dataWithContentsOfFile:PathToBXML];
Run Code Online (Sandbox Code Playgroud)

然后将其与:

[newData isEqualToData:oldData];
Run Code Online (Sandbox Code Playgroud)

问题仍然是:效率高于:

oldData = [NSString dataWithContentsOfFile:PathToAXML];
newData = [NSString dataWithContentsOfFile:PathToBXML];

[newData isEqualToString:oldData];
Run Code Online (Sandbox Code Playgroud)

小智 5

你也可以使用:

NSFileManager *filemgr = [NSFileManager defaultManager];

if ([filemgr contentsEqualAtPath:PathToAXML andPath:PathToBXML])
  NSLog (@"File contents match");
else
  NSLog (@"File contents do not match");
Run Code Online (Sandbox Code Playgroud)


Dan*_*son 3

比较文件内容的一种替代方法是跟踪文件修改日期 - 如果它晚于您创建副本的日期,您可能会认为它已被更新。

请参阅类中的fileAttributesAtPath:traverseLink:NSFileManager