Как добавить новый корневой элемент в C# 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 ответов


просто удалите DocumentElement из parent2 XmlDocument, затем добавьте импортированный узел parent1 в XmlDocument (непосредственно -- NOT в DocumentElement) и повторно добавьте удаленный узел parent2 к импортированному узлу parent1:

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

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