【发布时间】:2009-09-24 06:12:04
【问题描述】:
我正在比较两个 xml,我必须打印差异。如何使用 LINQ 实现这一点。 我知道我可以使用 Microsoft 的 XML diff patch,但我更喜欢使用 LINQ。如果您有任何其他想法,我会实施该
//第一个Xml
<Books>
<book>
<id="20504" image="C01" name="C# in Depth">
</book>
<book>
<id="20505" image="C02" name="ASP.NET">
</book>
<book>
<id="20506" image="C03" name="LINQ in Action ">
</book>
<book>
<id="20507" image="C04" name="Architecting Applications">
</book>
</Books>
//第二个xml
<Books>
<book>
<id="20504" image="C011" name="C# in Depth">
</book>
<book>
<id="20505" image="C02" name="ASP.NET 2.0">
</book>
<book>
<id="20506" image="C03" name="LINQ in Action ">
</book>
<book>
<id="20508" image="C04" name="Architecting Applications">
</book>
</Books>
我想比较这两个xml并像这样打印结果。
Issued Issue Type IssueInFirst IssueInSecond
1 image is different C01 C011
2 name is different ASP.NET ASP.NET 2.0
3 id is different 20507 20508
【问题讨论】:
-
xml 有多复杂?如果它是 just root/record/@attrib 它可能是可行的。
-
嗨,Marc,这是一个非常简单的例子,实际上 xml 有点复杂。
-
只是值和/或属性的不同还是结构也可以不同?
-
仅在属性值上有所不同(如您所见)。结构永不改变。
-
因此,只要两行中至少一个属性相同,它就应该将其他两个属性报告为不同?
标签: c# linq linq-to-xml compare