读书人

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

发布时间: 2013-10-27 15:21:49 作者: rapoo

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

读书人网 >C#

热点推荐