如何使用c#从xml文件中删除空标记

时间:2016-06-27 06:56:51

标签: c# xml

我在C#中创建了一个程序,它在XML文件中添加和删除数据。 添加新数据完全正常,但是在删除数据时,数据会被删除,但空标记仍保留在xml文件中。 我该如何删除它们?请帮忙

代码如下:

private void deleteall_Click(object sender, EventArgs e) // delete single record button
    {
        XmlDocument xdata = new XmlDocument();
        XmlNode xnode = xdata.SelectSingleNode("Information/Database");
        xdata.Load("C:\\Users\\son14344\\Documents\\Visual Studio 2010\\Projects\\project.xml");
        XmlNodeList oNodeList;
        oNodeList = xdata.SelectNodes("Information/Database");
        string s;
        s = Convert.ToString(textBox1.Text);
        try
        {
            foreach (XmlElement Oelement in oNodeList)
            {
                if (Oelement.SelectSingleNode("Database_Name").InnerText == s)
                {
                    //Oelement.ParentNode.RemoveChild(Oelement);
                    Oelement.RemoveAll();
                }

                xdata.Save("C:\\Users\\son14344\\Documents\\Visual Studio 2010\\Projects\\project.xml");

                //}
            }
        }
        catch (Exception ee)
        {
            MessageBox.Show(ee.Message);
        }

2 个答案:

答案 0 :(得分:0)

您必须捕获符合condition的节点。

if条件

  XmlNode node = Oelement.SelectSingleNode("Database_Name");
  XmlNode parent = node.ParentNode;
  // remove the child node
  parent.RemoveChild(node);

答案 1 :(得分:0)

尝试

 Oelement.ParentNode.RemoveChild(Oelement);

而不是

Oelement.RemoveAll();