该文档已有一个’DocumentElement’节点

我在文件的末尾添加了一个新节点,但是我收到了一个写错误:

该文档已有一个’DocumentElement’节点。

我的代码:

XmlDocument doc = new XmlDocument(); doc.Load(directory); XmlNode refElem = doc.LastChild; // Last node foreach (MoneyEnter myList in list) { XmlElement entryElement = doc.CreateElement("entry"); entryElement.SetAttribute("type", myList.TypeAmount); XmlElement amountElement = doc.CreateElement("amount"); amountElement.InnerText = Convert.ToString(myList.Amount); XmlElement dateElement = doc.CreateElement("date"); dateElement.InnerText = Convert.ToString(myList.Date); XmlElement descriptionElement = doc.CreateElement("description"); XmlCDataSection cdataDescription = doc.CreateCDataSection(myList.Description); descriptionElement.AppendChild(cdataDescription); XmlElement categoryElement = doc.CreateElement("category"); categoryElement.InnerText = myList.Category; entryElement.AppendChild(amountElement); entryElement.AppendChild(dateElement); entryElement.AppendChild(descriptionElement); entryElement.AppendChild(categoryElement); doc.InsertAfter(entryElement, refElem); //add new node in end of file } doc.Save(directory); 

我的XML文件:

    5 01.01.0001 0:00:00 ffvfd fdvfvf   5 01.01.0001 0:00:00 fvfv fvfdvfd   5 01.01.0001 0:00:00 fv gfv dscdcd   5 01.01.0001 0:00:00 vfvfv cfcfc   7 01.01.0001 0:00:00 gfbvgv gfbgfb   

你应该用

 XmlNode refElem = doc.DocumentElement.LastChild; 

 doc.DocumentElement.InsertAfter(entryElement, refElem); 

编辑

你也可以使用

 doc.DocumentElement.AppendChild(entryElement); 

在这种情况下, refElem