我有两个xml文档,例如:
aDoc.xml:
<update id="1293">
<abc>.....</abc>
<xyz>....</xyz>
<components>
<component name="C1">
<files source="s1" target="t1">
<file>**file2**</file>
<file>**file1**</file>
</files>
</component>
</components>
</update>
bDoc.xml:
<update id="1293">
<abc>.....</abc>
<xyz>....</xyz>
<components>
<component name="C1">
<files source="s1" target="t1">
<file>**file1**</file>
<file>**file2**</file>
</files>
</component>
</components>
</update>
我到目前为止所尝试的是:
var DiffInA = aDoc.Descendants("component").Cast<XNode>().Except(bDoc.Descendants("component").Cast<XNode>(), new XNodeEqualityComparer());
上面的行返回如下输出:
<component name="C1">
<files source="s1" target="t1">
<file>file2</file>
<file>file1</file>
</files>
(aDoc中存在但不属于bDoc的节点)
但是如果你看两个xml文件,组件C1只相同,那么标签出现的顺序就不同了。
有没有办法用linq to xml实现这个目标。(我不想使用XmlDiff或其他Api&#39;)