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

时间:2018-08-17 07:35:11

标签: c# xml 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);

我希望新文档的结构为表/表/项目。但是,上面的代码向我抛出错误:

  

不能将指定的节点作为该节点的有效子节点插入,因为指定的节点类型错误。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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