在C#中合并同类型XML节点并输出合并后的节点内容
嘿,我来帮你搞定这个XML节点合并的问题~
实现方案
你需要做的是聚合所有<Parent>节点的子元素内容,然后生成一个新的合并后的<Parent>节点。用LINQ to XML可以很简洁地实现,具体代码如下:
假设你的XML已经加载到XDocument对象中(比如var doc = XDocument.Load("你的文件路径.xml");),或者你已经有了<Parent>节点的集合:
// 先获取所有的Parent节点 var allParents = doc.Root.Elements("Parent"); // 构建合并后的Parent节点 var mergedParent = new XElement("Parent", new XElement("Child1", string.Join("/", allParents.Select(p => p.Element("Child1").Value))), new XElement("Child2", string.Join("/", allParents.Select(p => p.Element("Child2").Value))) ); // 输出结果的话,直接转成字符串即可 Console.WriteLine(mergedParent.ToString());
关键细节说明:
- 你原来的代码里用
Parent.Elements("Child1").Value是有问题的:Elements()返回的是子元素集合,直接取Value会拿到集合中第一个元素的值(如果有多个的话),这里应该用**单数的Element("Child1")**来获取单个子元素,再取Value,更符合你的场景。 string.Join("/", ...)是核心:它会遍历所有Parent节点,把每个节点的Child1/Child2内容用/拼接成一个字符串,正好满足你要的contentA/contentC格式。- 如果你的数据源不是从
XDocument来的,而是已经有了<Parent>的集合(比如你代码里的Parent变量),直接替换allParents为你的集合就行,逻辑完全一致。
运行这段代码后,就能得到你想要的合并后XML结构啦。
内容的提问来源于stack exchange,提问作者alpha con
相关产品推荐
相关产品推荐

