c#避免覆盖xml文件
本文关键字:xml 文件 覆盖 | 更新日期: 2023-09-27 18:05:52
我创建了一个c#应用程序来将数据写入xml文件。它覆盖了所有的新数据,如何避免……?请帮帮我。这是我的代码
namespace BarcodeScaner
{
class WriteFile
{
DateTime dt=DateTime.Now;
public WriteFile()
{
}
public void createFile(string ptr,string value)
{
using (XmlWriter writer = XmlWriter.Create("Data.xml"))
{
writer.WriteStartDocument();
writer.WriteStartElement("Products");
writer.WriteStartElement("Details");
writer.WriteAttributeString("PTR", ptr);
writer.WriteAttributeString("Value", value);
writer.WriteAttributeString("DateTime", dt.ToString());
writer.WriteEndElement();
writer.WriteEndDocument();
}
}
}
}
您可以使用XmlDocument
向现有Xml文档添加自定义节点:
XmlDocument doc = new XmlDocument();
doc.Load("Data.xml");
XmlElement el = doc.CreateElement("child");
el.InnerText = "Example of data being appendeed";
doc.DocumentElement.AppendChild(el);
doc.Save("test.xml");
您需要读取现有文件,将您的数据添加到其中。然后将合并后的结果写入文件。
由于XML文件的格式,您不能像使用某些文件格式那样简单地向文件追加新数据。
我假设您想要做的是向现有XML文件添加新数据,对吗?
您不能只是将数据附加到XML文件中,并且您的代码每次运行时实际上都会创建一个新文件,覆盖旧文件。
您需要做的是将XML数据读入内存,添加新节点,然后再次将整个文件写出来。如果有很多数据,那么从一个文件流到另一个文件并插入新节点可能会更有效。