如何在C#的XmlDocument中添加新的根元素?

6

我有一个不受我控制的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));

这是不可能的。

有什么好的解决方案吗?


4
这段代码是用C#编写的服务器端代码,但并不是很有帮助。 - aepheus
@Ian Jacobs 父母1和父母2之间存在一对一的关系。 - aepheus
@aepheus 我的意思是是否有任何规定说明哪些parent2与哪些parent1相对应? - Ian Jacobs
@user210118 我不想复制它,因为这实际上会使我的内存使用量翻倍。而且,我目前有一个内存问题。 - aepheus
@Ian Jacobs 是的,父级2始终是父级1的一级子级。 - aepheus
显示剩余6条评论
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接