<Root>
  <Abc>
    <Bcd>
      <A>33</A>
      <B>ss</B>
    </Bcd>
    <AAA>
      <SD>33</SD>
    </AAA>
  </Abc>
</Root>
如何指定删除 //Root//Abc//Bcd
即结果为:
<Root>
  <Abc>
    <AAA>
      <SD>33</SD>
    </AAA>
  </Abc>
</Root>

解决方案 »

  1.   

    关注中,XML节点删除,偶也想知道,顶
      

  2.   


    System.Xml.Linq.XDocument doc = System.Xml.Linq.XDocument.Load("file.xml");
                var query = from e in doc.Element("Root").Elements("Abc").Elements("Bcd")
                            select e;
                foreach(XElement xe in query)
                {
                    xe.Remove();
                }
      

  3.   

    找到这个node //Root//Abc//Bcd , 然后用node.ParentNode.RemoveChild(node)来删除,就是先找到这个node的parent,再删除它,嘿嘿
      

  4.   

    using System.Xml;
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(Server.MapPath("data.xml"));
            XmlNode book = doc.SelectSingleNode ( "//Root/Abc/Bcd" );
            book.ParentNode.RemoveChild(book)
            doc.Save ( Server.MapPath ( "data.xml" ) );
        }
    }
      

  5.   

                XmlDocument doc = new XmlDocument();
    doc.LoadXml("<Root><Abc><Bcd><A>33 </A><B>ss </B></Bcd><AAA><SD>33 </SD></AAA></Abc></Root>");
                XmlNode root = doc.DocumentElement;
                XmlNodeList list = root.SelectNodes( "descendant::Abc/Bcd" );
                foreach( XmlNode node in list )
                {
                    XmlNode parent = node.ParentNode;
                    parent.RemoveChild( node );
                }
      

  6.   


            private void toolStripMenuItem2_Click(object sender, EventArgs e)
            {
                XmlDocument doc = new XmlDocument();
                doc.Load("XMLFile1.xml");
                try
                {     
                    selectNodes(doc.ChildNodes);
                    doc .Save ("XMLFile1.xml");
                    
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            private void selectNodes(XmlNodeList nodes)
            {
                foreach (XmlNode node in nodes)
                {
                    if (node.Name == "Bcd")//"Foot/Abc/Bcd"
                    {
                        node.ParentNode.RemoveChild(node);                    
                    }
                    if (node.ChildNodes.Count >= 0)
                        selectNodes(node.ChildNodes);
                } 
            }