我有一个列表视图,其中包含联系人和存储联系人的XML文件。
我想创建一个按钮,它可以作为一种主重置按钮。基本上,当按下按钮时,程序(数据)应该重置并且像第一次打开一样 - 没有联系人应该在那里。因此,应清除列表视图,并从XML文件中删除数据。
这就是我的XML文件(Contacts.xml)的样子:
<People>
<Person>
<Name>John</Name>
<Hometown>Washington</Hometown>
<Address>231 Main Street</Address>
<Birthday>130299511993682082</Birthday>
<Phone>555-555-555</Phone>
<Email>john@gmail.com</Email>
<AdditionalInfo>Skype: john.123</AdditionalInfo>
</Person>
</People>
...这里是listview(listView1):
我知道如何清除listview,但我不知道如何“重置”XML文件。
有什么想法吗?
@EDIT:
根据您的建议,以下是我的尝试:
void MasterReset()
{
string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string phonebook_path = path + "\\Phonebook\\Contacts.xml";
XmlDocument xDoc = new XmlDocument();
xDoc.Load(phonebook_path);
XmlNode xNode = xDoc.SelectSingleNode("People");
xNode.InnerXml = "";
xDoc.Save(phonebook_path);
listView1.Clear();
}
但它不起作用,当我再次加载应用程序时 - 联系人仍在那里。
答案 0 :(得分:1)
要清除xml文件中的数据,首先需要创建一个XmlDocument
对象
using System.Xml; //Don't forget this
XmlDocument doc = new XmlDocument();
doc.Load(Application.StartupPath + "/Contacts.xml");
接下来,您需要选择“people”节点并将InnerXml设置为空,有效清除节点。
XmlNode node = doc.SelectSingleNode("People");
node.InnerXml = "";
最后,您需要将更改保存到文件中。
doc.Save(Application.StartupPath + "/Contacts.xml");
如果您想了解有关如何与xml交互的更多信息,请查看以下内容:
msdn article on the XmlDocument Class {
{3}}