将 XmlDocument 作为子节点添加到另一个 XmlDocument

Add XmlDocument as child node to another XmlDocument

我有两个 XmlDocuments,一个是根,另一个包含子项。我想将它们合并并保存到一个文档中。目前我有这个:

XmlDocument root = new XmlDocument();
root.LoadXml("<tables><table></table></tables>");

XmlDocument childItem = new XmlDocument();                  
childItem.LoadXml(string.Format(@"<item>
 <column columnName=""Article_text"">{0}</column>
 <column columnName=""Article_name"">{1}</column>
 </item>", atext, aname));

 root.AppendChild(childItem);

我希望我的新文档的结构是 tables/table/item。但是,上面的代码抛出一个错误:

The specified node cannot be inserted as the valid child of this node, because the specified node is the wrong type.

var newNode = root.ImportNode(childItem.FirstChild, true);
root["tables"]["table"].AppendChild(newNode);

首先将您的 item 元素导入 root 文档。期望 item 是您的根节点,您可以使用 FirstChild and ImportNode 来获取它:

 var newNode = root.ImportNode(childItem.FirstChild, true);

并将其附加到您的 table 元素:

root["tables"]["table"].AppendChild(newNode);