问题
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