4

我正在使用此 c# 代码将数据写入 xml 文件:

Employee[] employees = new Employee[2];
employees[0] = new Employee(1, "David", "Smith", 10000);
employees[1] = new Employee(12, "Cecil", "Walker", 120000);

using (XmlWriter writer = XmlWriter.Create("employees.xml"))
{
    writer.WriteStartDocument();
    writer.WriteStartElement("Employees");

    foreach (Employee employee in employees)
    {
    writer.WriteStartElement("Employee");

    writer.WriteElementString("ID", employee.Id.ToString());
    writer.WriteElementString("FirstName", employee.FirstName);
    writer.WriteElementString("LastName", employee.LastName);
    writer.WriteElementString("Salary", employee.Salary.ToString());

    writer.WriteEndElement();
    }

    writer.WriteEndElement();
    writer.WriteEndDocument();
}

现在假设我重新启动我的应用程序,并且我想在不丢失现有数据的情况下将新数据添加到 xml 文件中,使用相同的方式将覆盖我的 xml 文件上的数据,我试图弄清楚如何做到这一点,然后我搜索了一个类似的例子,但我什么都想不出来,有什么想法吗?

4

2 回答 2

7

也许您应该看一些使用数据集和 xml 的示例:

http://www.codeproject.com/Articles/13854/Using-XML-as-Database-with-Dataset

或使用 System.Xml.Serialization.XmlSerializer,当您没有大量记录时。

使用 XmlDocument 的示例

XmlDocument xd = new XmlDocument();
xd.Load("employees.xml");
XmlNode nl = xd.SelectSingleNode("//Employees");
XmlDocument xd2 = new XmlDocument();
xd2.LoadXml("<Employee><ID>20</ID><FirstName>Clair</FirstName><LastName>Doner</LastName><Salary>13000</Salary></Employee>");
XmlNode n = xd.ImportNode(xd2.FirstChild,true);
nl.AppendChild(n);
xd.Save(Console.Out);
于 2013-11-10T23:21:24.997 回答
1

对少量数据使用 xml 编写器很尴尬。您最好使用XDocument在第一次运行时从头开始初始化,或者在后续运行中从现有文件中读取的。

使用您可以使用和实例XDocument操作 XML,然后在您想要持久保存它时将整个内容写入文件。XElementXAttribute

于 2013-11-10T20:30:44.240 回答