在 C# 中合并两个 XML 文件

Posted

技术标签:

【中文标题】在 C# 中合并两个 XML 文件【英文标题】:Merge two XML Files in C# 【发布时间】:2021-04-29 05:38:20 【问题描述】:

您好,我正在尝试合并两个 XML 文件。但是,我从来没有在正确的地方建立连接。我尝试了两件事,但没有成功。

这两个 XML 文件如下所示:

他们应该看起来像这样:

我试过了 1#

var combinedUnique = doc2.Descendants("Actors")
                     .Union(doc1.Descendants("Actors"));
combinedUnique.First().Save(path);

但这会删除根和每个“演员”..

        MyDoc.Root.Add(XDocument.Load(System.IO.Path.Combine(Application.dataPath, "Resources/actors2.xml")).Descendants("Actor"));
        MyDoc.Save(path);

这会在“演员”下添加“演员”。 但我想将所有“演员”合并为“演员”,但如何?

【问题讨论】:

您必须自己阅读XML并将节点手动添加到相应的父节点,没人知道Actor是否是actors的子节点 我该怎么做?我想我可以在“演员”标签之间添加节点 你能把你的xml内容贴成文本吗,也许我可以给oyu一个小demo。 【参考方案1】:

我检查了 linq .Union() 方法。它消除了所有重复节点,这就是为什么您缺少某些东西的答案,您应该使用保留重复节点的Concat() 获得正确的结果

【讨论】:

以上是关于在 C# 中合并两个 XML 文件的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中合并两个 XML 文件

如何使用 c# 将两个音频文件和一个视频文件合并到一个视频文件中?

使用 XSL 转换合并两个 XML 文件

合并两个 XML 文件并添加缺少的标签和属性

合并相同类型的 xml 节点并在 C# 中显示两个结果

C# 中的程序化 XML 差异/合并