Как я могу добавить новый корневой элемент в C # XmlDocument? - PullRequest
6 голосов
/ 16 февраля 2010

У меня вне моего контроля 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 Ответ

4 голосов
/ 16 февраля 2010

Просто удалите DocumentElement из родительского XmlDocument, затем добавьте импортированный узел parent1 в XmlDocument (напрямую - НЕ в DocumentElement) и повторно добавьте удаленный родительский узел 2 к импортированному узлу parent1:

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

oParent2.AppendChild(p1node);
p1node.AppendChild(p2node);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...