C#:比较两个xml文件

时间:2015-02-09 12:21:01

标签: c# xml linq xml-parsing linq-to-xml

我想编写一个比较两个XML文件的函数。基于以下情况,差异可能是由于

  1. 节点的顺序和
  2. 可以添加或删除某些节点或属性
  3. 我找到了一个使用递归函数或LINQ to XML遍历XML的解决方案,所以基本上我可以获得所有节点和属性。我已经阅读了XML Diff and Patch Tool,但我试图避免依赖于我的项目。增加的复杂性是确定差异发生在的哪一行,但这对于现在来说是可选的。

    我目前正在考虑将两个XML文件的节点和属性存储到数据结构(例如字典)并稍后比较字典,但我不太清楚如何执行此操作。你能分享一些想法吗?

1 个答案:

答案 0 :(得分:0)

https://msdn.microsoft.com/en-us/library/system.xml.linq.xnode.deepequals%28v=vs.110%29.aspx要做XNode.DeepEquals(XDocument.Load("file1.xml"), XDocument.Load("file2.xml")),但这只会给你一个布尔结果,而不是指示差异在哪里。