获取xml文件的一部分并将它们捆绑在一个新文件中

时间:2012-05-14 17:29:35

标签: c# xml xmldocument

我正在尝试使用其他xml文件中的部分创建一个新的xml文件。例如,我有这两个xml文件:

文件1:

<root> 
    <persons>
        <person1>
            <name> </name>
            <address> </address>
            <number> </number>
        </person1>
        <person2>
            <name> </name>
            <address> </address>
            <number> </number>
        </person2>
    </persons>
</root>

文件2:

<registration>
    <results>
        <result1>
            <test1> </test1>
            <Test2> </test2>
        </result1>
        <result2>
            <test1> </test1>
            <Test2> </test2>
        </result2>
    </results>
</registration>

新的xml文件应如下所示:

<combined>
    <persons> 
        <person1>
            <name> </name>
            <address> </address>
            <number> </number>
        </person1>
        <person2>
            <name> </name>
            <address> </address>
            <number> </number>
        </person2>
    </persons>
    <results>
        <result1>
            <test1> </test1>
            <Test2> </test2>
        </result1>
        <result2>
            <test1> </test1>
            <Test2> </test2>
        </result2>
    </results>
</combined>

如何使用xmldocument在C#中完成此操作?

修改

更多信息,节点“人物”和“结果”应放在新的xml文档中(包括“人物”和“结果”)。

2 个答案:

答案 0 :(得分:2)

基本上:

var doc1 = XElement.Load(file1);
var doc2 = XElement.Load(file2);

var combined = new XElement("combined", doc1.Descendants("person"), doc2);

combined.Save(file3);

答案 1 :(得分:1)

XElement root1 = XElement.Load(file1);
XElement root2 = XElement.Load(file2);
XElement combined = new XElement("combined");

foreach(XElement node1 in root1.Elements())
    combined.Add(node1);

foreach(XElement node2 in root2.Elements())
    combined.Add(node2);

combined.Save(file3);