我一直在寻找,尽管有几种选择,但没有一个真的适合我当前的问题。
我得到两个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>
[我的主要复杂之处之一是,我没有被告知除“名称”之外还将存在哪些节点(或它们是否具有子节点)。
编辑:用户仅显示一次,节点可以任意顺序,节点数不固定。
您可以使用XElement class。
将XML反序列化为XElement对象,然后可以一个一个地比较子节点。
如果知道所有可能出现在此XML中的节点,则可以直接将此XML反序列化为C#对象。但是使用XElement类,您可以实现更通用的解决方案。