How can I add new root element to a C# XmlDocument?

送分小仙女□ 提交于 2020-01-24 04:08:27

问题


I have, outside of my control, an XmlDocument which has a structure like the following:

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

I have another XmlDocument, also outside of my control, which has the following structure:

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

I need an XmlDocument in the format:

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

I don't want to make a copy of parent2. How can I get the structure I need, without copying parent2? I believe this means

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

is out of the question.

Any good solutions out there?


回答1:


Just remove the DocumentElement from the parent2 XmlDocument, then append the imported parent1 node to the XmlDocument (directly -- NOT to the DocumentElement) and re-append the removed parent2 node to the imported parent1 node:

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

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


来源:https://stackoverflow.com/questions/2269150/how-can-i-add-new-root-element-to-a-c-sharp-xmldocument

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!