当前位置:  开发笔记 > 编程语言 > 正文

如何比较2个XML文档?

如何解决《如何比较2个XML文档?》经验,为你挑选了1个好方法。

我有两个文档都很相似,但我需要找到一种优雅而有效的方法来比较这两个文件并返回Doc#1中Doc#2中不存在的值.

XML Doc#1

      
        1
        2
        5
        6
        7
        8
        9
       
    

XML Doc#2

  
    1
    2
    7
    8
    9
  

如果我可以在id字段上加入这两个文件,我正在考虑使用linq.有没有更好的办法?我希望返回id#5和6.



1> Richard McGu..:

这是我知道的一个示例,我只用小文件试了一下(File1.xml有20个项目,File2.xml有8个项目).

XDocument file1Doc = XDocument.Load("File1.xml");
XDocument file2Doc = XDocument.Load("File2.xml");

IEnumerable file1Elements = from d in file1Doc.Descendants("Id")
                                    select d.Value;

IEnumerable file2Elements = from d in file2Doc.Descendants("Id")
                                    select d.Value;

var difference = file1Elements.Except(file2Elements);

或者,可能更符合您的要求:

XDocument file1Doc = XDocument.Load("File1.xml");
XDocument file2Doc = XDocument.Load("File2.xml");

IEnumerable file2Elements = from d in file2Doc.Descendants("Id")
                                    select d.Value;

var x = from include in file1Doc.Descendants("Id")
        where file2Elements.Contains(include.Value) != true
        select include;

您可能还会在MSDN上查找101 LINQ示例.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有