找到两个XML文件之间的区别

时间:2010-09-05 12:45:43

标签: c# xml diff

我已经构建了两个映射给定文件夹内容的XML文件:

<root>
    <folder name="C:\a\b" permision="yes" folderCount="1">
        <folders>
            <folder name="C:\a\b\c" permision="yes" folderCount="1">
                <folders>
                    <folder name="C:\a\b\c\e" permision="yes" folderCount="0">
                <folders/>
                <files>
                    <file name="401-1.htm"/>
                    <file name="401-2.htm"/>
                    <file name="401-3.htm"/>                              
                </files>
            </folder>
            <folder name="C:\a\b\d" permision="yes" folderCount="0">
                <folders/>
                <files>
                    <file name="401-4.htm"/>
                    <file name="401-5.htm"/>
                    <file name="401-3.htm"/>                                
                </files>
            </folder>
        </folders>
        <files/>
    </folder>
</root>

我想知道是否有办法找到文件之间的区别。

(一个文件是旧状态,第二个是新状态,只能添加文件而不能删除它们。从新状态中删除相同的节点会很好,所以只剩下新文件)。

2 个答案:

答案 0 :(得分:3)

我会像下面的项目一样使用LINQ to XML:

使用LINQ的XML文件中的差异
http://www.codeproject.com/KB/linq/LinqDiff.aspx

答案 1 :(得分:1)

如果您想在代码中执行此操作,可以使用Microsoft'ss XML Diff and Patch GUI Tool,虽然没有大量文档,但您应该能够轻松地将两个XML文件区分开来代码,在相当短的时间内。我在一些项目中使用它作为一系列单元测试的一部分,以确保正确生成XML文件。

如果您只想查看两个文件之间的差异,那么您可以使用任何不错的差异工具。