Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查找两个XML文件之间的差异_C#_Xml_Diff - Fatal编程技术网

C# 查找两个XML文件之间的差异

C# 查找两个XML文件之间的差异,c#,xml,diff,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>

我构建了两个映射给定文件夹内容的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>

我想知道是否有办法找出这些文件之间的区别


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

我将使用LINQ to XML,如以下项目所示:

具有LINQ的XML文件中的差异:

如果您想在代码中完成这项工作,您可以使用,尽管没有太多的文档,但有足够的文档,您应该能够在相当短的时间内轻松地在代码中区分两个XML文件。我在几个项目中使用它作为一系列单元测试的一部分,以确保正确生成XML文件


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

+1项目尚未完成。。。但是非常有趣。我将看看是否可以使用它来比较xml文件。谢谢。+1它正是我想要的,但我更喜欢使用主sdk。。。我真的不想发现未来sdk不支持该补丁。另一件事是它有一些bug,在你享受它之前应该先修复它们。。。。好消息是,我想做的事情在本质上和时间上都是可以做到的(对于435KB的文件,不到一秒钟)。非常感谢Asaf