我刚刚自己在网上学了一些XML的操作。有个问题:
比如我的XML结构是这样的:
address.xml<Address_Table>
  <address>
    <联系人>dongdong</联系人>
    <邮件地址>[email protected]</邮件地址>
  </address>
  <address>
    <联系人>hehe</联系人>
    <邮件地址>[email protected]</邮件地址>
  </address>
  <address>
    <联系人>chai</联系人>
    <邮件地址>[email protected]</邮件地址>
  </address>
  
</Address_Table>然后我要创建一个按钮事件:
查找用户在textBox输入的联系人名,比如上面的dongdong
然后就把dongdong这个<address>
    <联系人>dongdong</联系人>
    <邮件地址>[email protected]</邮件地址>
  </address>全部删除
代码该如何写?xmlc#结构

解决方案 »

  1.   

    Xmlement xl=(XmlElement)root.SelectSingleNode("address")
    RemoveChild(xl);
    手敲的啊具体查看XmlDocument的操作方法
      

  2.   

    linq to xml或者 xmldocument
    linq参考http://blog.csdn.net/chinajiyong/article/details/7485019
      

  3.   

     XmlDocument doc = new XmlDocument();
                doc.Load("test.xml");//加载xml文件            foreach (XmlNode node in doc.SelectNodes("/Address_Table"))
                {
                    if (node.SelectSingleNode("address/联系人").InnerText == "dongdong")//如果是dongdong
                    {
                        node.RemoveChild(node.SelectSingleNode("address"));//移除这一节点
                        break;
                    }
                }
                doc.Save("test.xml");//保存并覆盖test.xml文件
      

  4.   


    大神,好像你这样只能删掉顶端的那条符合条件的,如果没删dongdong,
    我要删第二条hehe的记录就不行了,它不会往下检索直到匹配到才删
      

  5.   

    先select到这个节点,然后删除呀,亲
      

  6.   

    XML操作类
      

  7.   


    大神,好像你这样只能删掉顶端的那条符合条件的,如果没删dongdong,
    我要删第二条hehe的记录就不行了,它不会往下检索直到匹配到才删sorry,改进一下。
     string nodeName = "dongdong";//定义一个要删除的节点的名称的内容            XmlDocument doc = new XmlDocument();
                doc.Load("test.xml");//加载xml文件
                foreach (XmlNode node in doc.SelectSingleNode("/Address_Table").ChildNodes)
                {
                    if (node.SelectSingleNode("联系人").InnerText == nodeName)//如果是dongdong
                    {
                        node.ParentNode.RemoveChild(node);//移除这一节点
                        break;
                    }
                }
                doc.Save("test.xml");//保存并覆盖test.xml文件