主重置 - 清除列表视图和xml文件中的数据

时间:2013-11-26 15:03:20

标签: c# xml listview

我有一个列表视图,其中包含联系人和存储联系人的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

我知道如何清除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();
    }

但它不起作用,当我再次加载应用程序时 - 联系人仍在那里。

1 个答案:

答案 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}}