比较XML文件以确定差异

问题描述 投票:0回答:1

我一直在寻找,尽管有几种选择,但没有一个真的适合我当前的问题。

我得到两个XML文件,File1和File2,它们有“ User”节点,其子节点详细描述了诸如名称,年龄,地址等内容。从那里,我需要创建第三个XML File3,该XML File3专门包含在两个,同时保留“名称”节点以标识更改是由该用户完成的。

所以,如果我得到:

File 1:
<users>
 <user>
  <name>Marco</name>
  <height>1,76</height>
  <address>C:/ Far-away 34</address>
  <mail>marco@marco</mail>
 </user>
</users>

File 2:
<users>
 <user>
  <name>Marco</name>
  <height>1,80</height>
  <address>C:/ Far-away 34</address>
  <mail></mail>
 </user>
</users>

它应该使用以下命令吐出XML:

File 3:
<users>
 <user>
  <name>Marco</name>
  <height>1,80</height>
  <mail></mail>
 </user>
</users>

[我的主要复杂之处之一是,我没有被告知除“名称”之外还将存在哪些节点(或它们是否具有子节点)。

编辑:用户仅显示一次,节点可以任意顺序,节点数不固定。

c# xml xml-parsing
1个回答
0
投票

您可以使用XElement class

将XML反序列化为XElement对象,然后可以一个一个地比较子节点。

如果知道所有可能出现在此XML中的节点,则可以直接将此XML反序列化为C#对象。但是使用XElement类,您可以实现更通用的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.