这份文件已经有一个“DocumentElement”节点 [英] This document already has a ' DocumentElement ' node
本文介绍了这份文件已经有一个“DocumentElement”节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我添加在文件的最后一个新的节点,但我得到一个写入错误:
该文档已经有了一个DocumentElement节点。
我的code:
XmlDocument的文档=新的XmlDocument();
doc.Load(目录);
XmlNode的refElem = doc.LastChild; //最后一个节点
的foreach(MoneyEnter myList上的列表)
{
的XmlElement entryElement = doc.CreateElement(输入);
entryElement.SetAttribute(类型,myList.TypeAmount);
的XmlElement amountElement = doc.CreateElement(额);
amountElement.InnerText = Convert.ToString(myList.Amount);
的XmlElement dateElement = doc.CreateElement(日);
dateElement.InnerText = Convert.ToString(myList.Date);
的XmlElement descriptionElement = doc.CreateElement(说明);
XmlCDataSection cdataDescription = doc.CreateCDataSection(myList.Description);
descriptionElement.AppendChild(cdataDescription);
的XmlElement categoryElement = doc.CreateElement(类);
categoryElement.InnerText = myList.Category;
entryElement.AppendChild(amountElement);
entryElement.AppendChild(dateElement);
entryElement.AppendChild(descriptionElement);
entryElement.AppendChild(categoryElement);
doc.InsertAfter(entryElement,refElem); //在文件的最后添加新节点
}
doc.Save(目录);
我的XML文件:
< XML版本=1.0编码=UTF-8&GT?;
<条目>
<条目类型=借记>
&其中;量> 5℃/量GT;
<日期> 01.01.0001起0:00:00< /日期>
<描述> ffvfd< /描述>
<类别> fdvfvf< /类>
< /进入>
<条目类型=借记>
&其中;量> 5℃/量GT;
<日期> 01.01.0001起0:00:00< /日期>
<描述> fvfv< /描述>
<类别> fvfdvfd< /类>
< /进入>
<条目类型=借记>
&其中;量> 5℃/量GT;
<日期> 01.01.0001起0:00:00< /日期>
<描述> FV GFV< /描述>
<类别> dscdcd< /类>
< /进入>
<条目类型=借记>
&其中;量> 5℃/量GT;
<日期> 01.01.0001起0:00:00< /日期>
<描述> vfvfv< /描述>
<类别> cfcfc< /类>
< /进入>
<条目类型=借记>
&其中;量大于7&所述; /量GT;
<日期> 01.01.0001起0:00:00< /日期>
<描述> gfbvgv< /描述>
<类别> gfbgfb< /类>
< /进入>
< /项>
解决方案
您应该使用
XmlNode的refElem = doc.DocumentElement.LastChild;
和
doc.DocumentElement.InsertAfter(entryElement,refElem);
修改
您也可以使用
doc.DocumentElement.AppendChild(entryElement);
在这种情况下, refElem
是不需要的。
I'm adding a new node at the end of a file, but I get a write error:
This document already has a 'DocumentElement' node.
My code:
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);
My XML file:
<?xml version="1.0" encoding="utf-8" ?>
<entries>
<entry type="debit">
<amount>5</amount>
<date>01.01.0001 0:00:00</date>
<description>ffvfd</description>
<category>fdvfvf</category>
</entry>
<entry type="debit">
<amount>5</amount>
<date>01.01.0001 0:00:00</date>
<description>fvfv</description>
<category>fvfdvfd</category>
</entry>
<entry type="debit">
<amount>5</amount>
<date>01.01.0001 0:00:00</date>
<description>fv gfv</description>
<category>dscdcd</category>
</entry>
<entry type="debit">
<amount>5</amount>
<date>01.01.0001 0:00:00</date>
<description>vfvfv</description>
<category>cfcfc</category>
</entry>
<entry type="debit">
<amount>7</amount>
<date>01.01.0001 0:00:00</date>
<description>gfbvgv</description>
<category>gfbgfb</category>
</entry>
</entries>
解决方案
You should use
XmlNode refElem = doc.DocumentElement.LastChild;
and
doc.DocumentElement.InsertAfter(entryElement, refElem);
EDIT
You may also use
doc.DocumentElement.AppendChild(entryElement);
In this case refElem
is not needed.
这篇关于这份文件已经有一个“DocumentElement”节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文