从两个xml文件创建一个diff文件

时间:2015-06-16 12:42:51

标签: c# xml

我正在尝试使用xmldiffpatch在两个xml文件之间创建一个diff文件。 XDocument.Compare(old.xml,current.xml,writer)创建一个xml' map'可用于将当前更改合并为旧更改。我想生成一个新的xml,只有当前和旧的差异。 https://msdn.microsoft.com/en-us/library/aa302294.aspx显示了合并的示例。如何映射'被解析以创建diff文件?有没有更好的方法来生成diff文件?

示例数据:

name是每个人的ID

old.xml

<root>
  <person>
    <name>joe</name>
    <gender>m</gender>
    <location>US</location>
  </person>
  <person>
    <name>sally</name>
    <gender>f</gender>
    <location>CA</location>
  </person>
  <person>
    <name>frank</name>
    <gender>m</gender>
    <location>UK</location>
  </person>
</root>

的current.xml

<root>
  <person>
    <name>joe</name>
    <gender>m</gender>
    <location>US</location>
  </person>
  <person>
    <name>sally</name>
    <gender>f</gender>
    <location>NZ</location>
  </person>
  <person>
    <name>sue</name>
    <gender>f</gender>
    <location>MEX</location>
  </person>
</root>
  • 乔没有改变
  • sallys位置变更为新西兰
  • frank已被删除
  • sue已被添加

问题已通过创建人员类,将每个人节点转换为对象,创建两个人物对象列表然后使用List1.Except(list2).ToList()

进行比较来解决。

0 个答案:

没有答案