合并两个XML文件LINQ [英] Merging two xml files LINQ

查看:177
本文介绍了合并两个XML文件LINQ的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有问题,合并两个XML文件。
我装这两个文件到两个对象,位于这两个对象目标节点,并试图合并。



下面是一个例子:

  VAR nodes1 = XResult1.Descendants (学科); 
VAR nodes2 = XResult2.Descendants(主体);

//nodes1.Add(nodes2.Nodes());



// *代码合并**
能有人请帮助我。提前
谢谢... BB



下面是我的XResult1:

 
<题材与GT;
<个体GT;
<节点ID =" 1 QUOT;>

< /节点>
将;节点ID = QUOT; 2英寸;>
嗨再次
< /节点>
将;节点ID = QUOT; 3英寸;>
嗨一次
< /节点>
< /受试者GT;
< /科目>

下面是我的XResult2:

 
<题材与GT;
<个体GT;
将;节点ID = QUOT; 4英寸;>
你好
< /节点>
将;节点ID = QUOT; 5英寸;>
您好再次
< /节点>
< /受试者GT;
< /科目>

和我最后的结果应该是:






 
<题材与GT;
<个体GT;
<节点ID =" 1 QUOT;>

< /节点>
将;节点ID = QUOT; 2英寸;>
嗨再次
< /节点>
将;节点ID = QUOT; 3英寸;>
嗨一次
< /节点>
将;节点ID = QUOT; 4英寸;>
你好
< /节点>
将;节点ID = QUOT; 5英寸;>
您好再次
< /节点>

< /受试者GT;
< /科目>





解决方案

您想更改:

  XResult1.Descendants(科)FirstOrDefault()。 
XResult2.Descendants(科)FirstOrDefault()。



  XResult1.Descendants(主体)FirstOrDefault()。 
XResult2.Descendants(主体)FirstOrDefault()。

下面是一个更完整的例子:

 的XDocument文档= XDocument.Load(@C:\XResult1.xml); 
的XElement subjectElement = document.Descendants(主体)FirstOrDefault()。

的XDocument书2 = XDocument.Load(@C:\XResult2.xml);
的XElement subjectElement2 = document2.Descendants(主体)FirstOrDefault()。

subjectElement.Add(subjectElement2.Nodes());


I have problem merging two XML files. I loaded both files into two objects, located the target nodes in both objects and tried to merge.

Here is a sample:

var nodes1 = XResult1.Descendants("subject");
var nodes2 = XResult2.Descendants("subject");

//nodes1.Add(nodes2.Nodes());

//* Code to merge** Can somebody pls help me. Thanks in advance... BB

Here is my XResult1:

<subjects>
    <subject>
        <node id="1">
            Hi
        </node>
        <node id="2">
            Hi again
        </node>
        <node id="3">
            Hi once more
        </node>
    </subject>
</subjects>

Here is my XResult2 :

<subjects>
    <subject>
        <node id="4">
            Hello
        </node>
        <node id="5">
            Hello again
        </node>
    </subject>
</subjects>

And my final Result should be :

<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>

解决方案

You want to change:

XResult1.Descendants("subjects").FirstOrDefault(); 
XResult2.Descendants("subjects").FirstOrDefault();

to

XResult1.Descendants("subject").FirstOrDefault();
XResult2.Descendants("subject").FirstOrDefault(); 

Here is a more complete example:

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());

这篇关于合并两个XML文件LINQ的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆