比较两个xml文件并突出显示差异

时间:2014-08-21 09:25:40

标签: c# xml

我可以使用一些我需要解决的帮助。 我有两个xml文件,它们几乎相同,我需要找到更改的内容,这意味着,我需要逐行比较它们,我需要使用c#突出显示Visual Studio中的更改

我见过这些工具,但我想知道我是否可以使用代码来完成。 我是新手,所以我可以使用一个小指南。

我的xml文件类似于:

    <?xml version="1.0" encoding="utf-8" ?>
<Employees>
  <Employee ID="1" Name="JayT" JoinDate="3/1/2009">
    <Projects>
      <Project ID="1" Name="Project1" StartDate="2/1/2009" EndDate="4/1/2009" />
      <Project ID="2" Name="Project2" StartDate="3/5/2009" EndDate="4/1/2010" />
    </Projects>
  </Employee>
  <Employee ID="2" Name="Kim" JoinDate="4/1/2009">
    <Projects>
      <Project ID="3" Name="Project3" StartDate="5/1/2009" EndDate="10/1/2009" />
      <Project ID="2" Name="Project2" StartDate="3/5/2009" EndDate="4/1/2010" />
      <Project ID="6" Name="Project6" StartDate="3/5/2009" EndDate="4/1/2010" />
    </Projects>
  </Employee>
  <Employee ID="3" Name="Tom" JoinDate="6/1/2009">
    <Projects>
    </Projects>
  </Employee>
</Employees> 

File2 Data: Modified File (Referred to as "B XML" in the document) 

<?xml version="1.0" encoding="utf-8" ?>
<Employees>
  <Employee ID="1" Name="JayT" JoinDate="3/1/2009">
    <Projects>
      <Project ID="6" Name="Project6" StartDate="5/1/2009" EndDate="11/1/2009" />
    </Projects>   
  </Employee>
  <Employee ID="3" Name="Tom" JoinDate="6/1/2009">
    <Projects>
      <Project ID="5" Name="Project5" StartDate="7/1/2009" EndDate="12/1/2009" />
    </Projects>   
  </Employee> 
</Employees>

例如上面的代码,我需要突出显示更改,添加或删除的行

1 个答案:

答案 0 :(得分:0)

您可以使用XMLDocument类加载这两个文件,然后使用字符串比较比较每个节点的值和属性,并可能将更改保存在第三个xmldocument中。 http://msdn.microsoft.com/en-us/library/system.xml.xmldocument(v=vs.110).aspx