该文档已有一个’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
。