首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# XML操作类,该怎么解决

2013-10-27 
C# XML操作类我刚刚自己在网上学了一些XML的操作。有个问题:比如我的XML结构是这样的:address.xmlAddress_

C# XML操作类
我刚刚自己在网上学了一些XML的操作。有个问题:
比如我的XML结构是这样的:
address.xml


<Address_Table>
  <address>
    <联系人>dongdong</联系人>
    <邮件地址>dongdong@163.com</邮件地址>
  </address>
  <address>
    <联系人>hehe</联系人>
    <邮件地址>xixi@21.cn</邮件地址>
  </address>
  <address>
    <联系人>chai</联系人>
    <邮件地址>cf@263.net</邮件地址>
  </address>
  
</Address_Table>


然后我要创建一个按钮事件:
查找用户在textBox输入的联系人名,比如上面的dongdong
然后就把dongdong这个
<address>
    <联系人>dongdong</联系人>
    <邮件地址>dongdong@163.com</邮件地址>
  </address>
全部删除
代码该如何写? xml c# 结构
[解决办法]
引用:
Quote: 引用:

 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文件


大神,好像你这样只能删掉顶端的那条符合条件的,如果没删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文件

热点排行