DocumentElement.AppendChild抛出未设置为对象实例的对象引用

时间:2013-04-29 10:20:30

标签: c# xml c#-4.0 xmldocument

我正在尝试创建一个新的xml文件,将数据写入其中而不是保存。

以下是代码:

XmlDocument doc= new XmlDocument();
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", null, null);
doc.AppendChild(dec);

XmlElement rootnode = doc.CreateElement("Root");

foreach (var item in list)
{
   XmlElement parent = ordersNIA.CreateElement("ParentElement");

   XmlElement childOne = ordersNIA.CreateElement("childOne");
   childOne.InnerText = "This is the first child";
   parent.AppendChild(childOne);

   XmlElement childTwo = ordersNIA.CreateElement("childTwo");
   childOne.InnerText = "This is the second child";
   parent.AppendChild(childTwo);

   XmlElement childThree = ordersNIA.CreateElement("childThree");
   childOne.InnerText = "This is the third child";
   parent.AppendChild(childThree);

   rootnode.AppendChild(parent);

}

doc.DocumentElement.AppendChild(rootnode);
doc.Save("xmlDocument.xml");

doc.DocumentElement.AppendChild(rootnode);是抛出

的行
  

“对象引用未设置为对象的实例”

我一直在网上看,但我似乎没有找到为什么抛出这个错误的答案。

当我检查rootnode时,我看到它的innerHTML完全填满了我的xml,所以这似乎是正确的。我没有看到任何空对象,但也许我错过了什么

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

您还没有文档元素,因为您添加的唯一子元素是声明。替换

doc.DocumentElement.AppendChild(rootnode);

使用:

doc.AppendChild(rootnode);