本人正在用C#做毕设,现在需要用C#语言实现在XML中删除节点
怎么写代码呢??谢谢大家!

解决方案 »

  1.   

    C#高级编程,好好看看XML那一章
      

  2.   

    XmlDocument xmlDoc1 = new XmlDocument();
    xmlDoc1.Load("ss.xml"); 
    XmlNode root = xmlDoc1.SelectSingleNode("aa");
    root.RemoveChild("bb");
    bb是你要删除的节点,aa是bb的父节点
    xmlDoc1.Save("ss.xml"); 
      

  3.   

    XmlDocument doc = new XmlDocument();
                doc.Load(Server.MapPath("test.xml"));
                XmlNodeList nodes;
                XmlElement root = doc.DocumentElement;
                nodes = root.SelectNodes("descendant::Table[EName='" + TextBox1.Text.Trim() + "']");
                foreach (XmlNode node in nodes)
                {
                    root.RemoveChild(node);
                }
                doc.Save(Server.MapPath("test.xml"));
                Xml2.Document = doc;
      

  4.   

    这也要问,msdn里抄一段不挺好
      

  5.   

    示例操作xml文件如下:
    <Students>
     <Student>
      <Name>ab</Name> 
      <Sex>帅哥</Sex> 
      <Address>江西</Address> 
      <Age>42</Age> 
      </Student>
     <Student>
      <Name>阿明</Name> 
      <Sex>帅哥</Sex> 
      <Address>安徽</Address> 
      <Age>24</Age> 
      </Student>
     <Student>
      <Name>小丽</Name> 
      <Sex>美女</Sex> 
      <Address>深圳</Address> 
      <Age>24</Age> 
     </Student>
    </Students>//删除Age元素内容为24的Age元素节点。
    static void XmlDeleteAgeNode() 
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(@"c:\students.xml");
        //doc.Load(Server.MapPath("students.xml"));
        XmlNodeList xList = doc.SelectNodes("//Student/Age[text()='24']");           
        foreach (XmlNode node in xList)
        {
            node.ParentNode.RemoveChild(node);
        }
        doc.Save(@"c:\students1.xml"); 
        //doc.Save(Server.MapPath("students.xml")); 
    }输出结果:
    <Students>
     <Student>
      <Name>ab</Name> 
      <Sex>帅哥</Sex> 
      <Address>江西</Address> 
      <Age>42</Age> 
      </Student>
     <Student>
      <Name>阿明</Name> 
      <Sex>帅哥</Sex> 
      <Address>安徽</Address> 
      </Student>
     <Student>
      <Name>小丽</Name> 
      <Sex>美女</Sex> 
      <Address>深圳</Address> 
      </Student>
      </Students>
      <Sex>美女</Sex> 
      <Address>深圳</Address> 
      <Age>24</Age> 
     </Student>
    </Students>//删除Age子元素内容为24的Student元素节点。
    static void XmlDeleteAgeStudent()
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(@"c:\students.xml");
        //doc.Load(Server.MapPath("students.xml"));
        XmlNodeList xList = doc.SelectNodes("//Student[Age[text()='24']]");
        foreach (XmlNode node in xList)
        {
            node.ParentNode.RemoveChild(node);
        }
        doc.Save(@"c:\students1.xml");
        //doc.Save(Server.MapPath("students.xml")); 
    }输出结果:
    <Students>
      <Student>
        <Name>ab</Name>
        <Sex>帅哥</Sex>
        <Address>江西</Address>
        <Age>42</Age>
      </Student>
    </Students>
      

  6.   

    public static void Delete(string path, string node, string attribute)
            {
                    XmlDocument doc = new XmlDocument();
                    doc.Load(path);
                    XmlNode xn = doc.SelectSingleNode(node);
                    XmlElement xe = (XmlElement)xn;
                    if (attribute.Equals(""))
                        xn.ParentNode.RemoveChild(xn);
                    else
                        xe.RemoveAttribute(attribute);
                    doc.Save(path);
            }
    XmlNodeList xnl=doc.SelectSingleNode("").ChildNodes; 
    foreach(XmlNode xn in xnl) 

    XmlElement xe=(XmlElement)xn; 
    xe.RemoveAttribute(""); XmlNodeList nls=xe.ChildNodes; 
    foreach(XmlNode xn1 in nls)

    XmlElement xe2=(XmlElement)xn1; 
    if(xe2.Name=="")

    xe.RemoveChild(xe2);



    doc.Save( Server.MapPath("") );