xmlNode没有删除

时间:2016-11-29 16:53:27

标签: c# asp.net .net xml

我无法从xml文件中删除xml节点。我无法弄清楚我的代码中的问题。我附上了我的代码

class Program
{
    static void Main(string[] args)
    {
        XmlDocument xDoc=new XmlDocument();
        xDoc.Load(@"C:\Users\MyUser\Desktop\Family.xml");

        //try 1
        XmlNode firstNode=xDoc.SelectSingleNode("Apartments/Family[Father='Father1']");
        xDoc.LastChild.RemoveChild(firstNode);
        xDoc.RemoveAll();


        //Try2
        XmlNodeList nodeColl = xDoc.GetElementsByTagName("Apartments/Family");

        foreach (XmlNode xNode in nodeColl)
        {
            if (xNode["Father"].InnerText == "Father1")
            {
                xNode.ParentNode.RemoveChild(xNode);
            }
        }
       // firstNode.ParentNode.RemoveChild(firstNode);
    }
}

Xml文档格式为

<?xml version="1.0"?>
<Apartments>
<Family>
<Father>Father1</Father>
<Mother>Mother1</Mother>
<Daughter>Daughter1</Daughter>
<Son>Son1</Son>
</Family>
<Family>
<Father>Father2</Father>
<Mother>Mother2</Mother>
<Daughter>Daughter2</Daughter>
<Son>Son2</Son>
</Family>
<Family>
<Father>Father3</Father>
<Mother>Mother3</Mother>
<Daughter>Daughter3</Daughter>
<Son>Son3</Son>
</Family>
<Family>
<Father>Father4</Father>
<Mother>Mother4</Mother>
<Daughter>Daughter4</Daughter>
<Son>Son4</Son>
</Family>
</Apartments>

请告诉我哪里错了。

1 个答案:

答案 0 :(得分:1)

修改完成后,您需要将更改保存到文件中。

XmlDocument xDoc=new XmlDocument();
xDoc.Load(@"C:\Users\MyUser\Desktop\Family.xml");

XmlNodeList nodeColl = xDoc.GetElementsByTagName("Apartments/Family");

foreach (XmlNode xNode in nodeColl)
{
    if (xNode["Father"].InnerText == "Father1")
    {
        xNode.ParentNode.RemoveChild(xNode);
    }
}
// save the changes back to file
xDoc.Save(@"C:\Users\MyUser\Desktop\Family.xml");