如何将新的根元素添加到C#XmlDocument?

时间:2010-02-15 21:44:53

标签: c# optimization xmldocument

在我无法控制的情况下,我有一个XmlDocument,它具有如下结构:

<parent1>
...minor amount of data...
</parent1>

我有另一个XmlDocument,也在我的控制之外,它具有以下结构:

<parent2>
..very large amount of data...
</parent2>

我需要格式为:

的XmlDocument
<parent1>
...minor amount of data...
<parent2>
..very large amount of data...
</parent2>
</parent1>

我不想复制parent2。如何在不复制parent2的情况下获得所需的结构?我相信这意味着

oParent1.DocumentElement.AppendChild(oParent1.ImportNode(oParent2.DocumentElement, true));

是不可能的。

那里有什么好的解决方案吗?

1 个答案:

答案 0 :(得分:4)

只需从parent2 XmlDocument中删除DocumentElement,然后将导入的parent1节点追加到XmlDocument(直接 - 而不是DocumentElement),并将删除的parent2节点重新附加到导入的parent1节点:

var p1node = oParent2.ImportNode(oParent1.DocumentElement, true);
var p2node = oParent2.RemoveChild(oParent2.DocumentElement);

oParent2.AppendChild(p1node);
p1node.AppendChild(p2node);