我有相同的架构/结构,但不同的两个数据的XML文件。 我试图用Linqpad(LINQ到XML)来找到两个文件之间的差异。
这里是我的代码...
XElement FILE1 = XElement.Load (@"..\FILE1.XML");
XElement FILE2 = XElement.Load (@"..\FILE2.XML");
var orders = from file1 in FILE1.Descendants("Players").Elements("Player")
select new {
name=new {
firstName=file1.Element("FirstName"),
lastName=file1.Element("LastName")
}
};
var orders2 =
from file2 in FILE2.Descendants("Players").Elements("Player")
select new {
name=new {
firstName=file2.Element("FirstName"),
lastName=file2.Element("LastName")
}
};
var matchingResults = from i in orders from j in orders2 where (i.name.firstName==j.name.firstName && i.name.lastName==j.name.lastName)
select i;
matchingResults.Dump()
上次转储()将返回0的结果。 我知道有两个匹配的文件数据。
编辑我忘了提,如果我每次倾倒我得到的结果(非常相似),用于两个序列的查询结果。
我也曾尝试这里显示的方法...
比较两个xml和打印使用LINQ的区别
(它结合了文件合并为一个序列,然后就比较),但我在歌厅相同的结果... 0的结果。
这种做法也似乎产生了第一个订单序列的笛卡尔乘积。
我想要的是找到匹配的或丢失从文件中的节点。
我缺少的是在这里吗?