我在合并两个XML文件时遇到问题。 我将两个文件加载到两个对象中,找到两个对象中的目标节点并尝试合并。
以下是一个示例:
var nodes1 = XResult1.Descendants("subject");
var nodes2 = XResult2.Descendants("subject");
//nodes1.Add(nodes2.Nodes());
// *要合并的代码** 有人可以帮助我。 提前谢谢...... BB
这是我的XResult1:
<subjects> <subject> <node id="1"> Hi </node> <node id="2"> Hi again </node> <node id="3"> Hi once more </node> </subject> </subjects>
这是我的XResult2:
<subjects> <subject> <node id="4"> Hello </node> <node id="5"> Hello again </node> </subject> </subjects>
我的最终结果应该是:
<subjects> <subject> <node id="1"> Hi </node> <node id="2"> Hi again </node> <node id="3"> Hi once more </node> <node id="4"> Hello </node> <node id="5"> Hello again </node> </subject> </subjects>
答案 0 :(得分:3)
你想改变:
XResult1.Descendants("subjects").FirstOrDefault();
XResult2.Descendants("subjects").FirstOrDefault();
到
XResult1.Descendants("subject").FirstOrDefault();
XResult2.Descendants("subject").FirstOrDefault();
这是一个更完整的例子:
XDocument document = XDocument.Load(@"C:\XResult1.xml");
XElement subjectElement = document.Descendants("subject").FirstOrDefault();
XDocument document2 = XDocument.Load(@"C:\XResult2.xml");
XElement subjectElement2 = document2.Descendants("subject").FirstOrDefault();
subjectElement.Add(subjectElement2.Nodes());
答案 1 :(得分:0)
如果要合并subject
元素中的元素,则需要在树中进一步向下移动,因此请将nodes1
和nodes2
设置为以下内容:
XElement nodes2 = XResult2.Descendants("subjects").Descendants("subject").FirstOrDefault();