我刚刚自己在网上学了一些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#结构
比如我的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#结构
RemoveChild(xl);
手敲的啊具体查看XmlDocument的操作方法
linq参考http://blog.csdn.net/chinajiyong/article/details/7485019
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的记录就不行了,它不会往下检索直到匹配到才删
大神,好像你这样只能删掉顶端的那条符合条件的,如果没删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文件