gpt4 book ai didi

c# - 将 XML 写入文件而不覆盖以前的数据

转载 作者:数据小太阳 更新时间:2023-10-29 02:00:24 25 4
gpt4 key购买 nike

我目前有一个 C# 程序,它使用 .NET Framework 将数据写入 XML 文件。

if (textBox1.Text!="" && textBox2.Text != "")
{
XmlTextWriter Writer = new XmlTextWriter(textXMLFile.Text, null);
Writer.WriteStartDocument();
Writer.WriteStartElement("contact");
Writer.WriteStartElement("firstName");
Writer.WriteString(textBox1.Text);
Writer.WriteEndElement();

Writer.WriteEndElement();
Writer.WriteEndDocument();
Writer.Close();
}
else
{
MessageBox.Show("Nope, fill that textfield!");
}

问题是每次我尝试保存新内容时,我的 XML 文件都会被覆盖。

对于 XmlTextWriter 中的第二个参数,我有 nullEncoding.UTF8 但它似乎不是什么更改非覆盖/覆盖功能。

最佳答案

你可以使用 XDocument :

public static void Append(string filename, string firstName)
{
var contact = new XElement("contact", new XElement("firstName", firstName));
var doc = new XDocument();

if (File.Exists(filename))
{
doc = XDocument.Load(filename);
doc.Element("contacts").Add(contact);
}
else
{
doc = new XDocument(new XElement("contacts", contact));
}
doc.Save(filename);
}

然后像这样使用:

if (textBox1.Text != "" && textBox2.Text != "")
{
Append(textXMLFile.Text, textBox1.Text);
}
else
{
MessageBox.Show("Nope, fill that textfield!");
}

这将创建联系人/将联系人附加到以下 XML 结构:

<?xml version="1.0" encoding="utf-8"?>
<contacts>
<contact>
<firstName>Foo</firstName>
</contact>
<contact>
<firstName>Bar</firstName>
</contact>
</contacts>

关于c# - 将 XML 写入文件而不覆盖以前的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6486435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com