C#中 如何 删除 xml 的一行

lifeixie 2008-07-17 09:40:03
<id>fdfassdfa</id>
<kmobile>dfsasdf</kmobile>
<kdate>啊啊啊啊啊啊</kdate>
<kfrom>dsfdasfdasfdf</kfrom>
<kdata>dfasdfdfsdfas</kdata>
....................
N行


如何删除 if (xe.ChildNodes[2].InnerText == "啊啊啊啊啊啊" 这个条件的数据行
RemoveAll 把这一行的数据字段全清空了,清了后,这行的字段全是null,但行本身并没有删除,下次读的时候还要读只不过里面是NULL了。如何删除这一行,类似删除数据哭的行一样删除!!!


XmlDocument doc = new XmlDocument();
doc.Load("data.xml");
XmlNodeList xn = doc.SelectSingleNode("NewDataSet").ChildNodes;
foreach (XmlNode xe in xn)
{

if (xe.ChildNodes[2].InnerText == "啊啊啊啊啊啊")
{
//xe.RemoveChild(xe.ChildNodes[2]);
//xe.RemoveAll();
xe.
doc.Save("data.xml");

}
}

...全文
231 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
guilin_gavin 2008-07-17
  • 打赏
  • 举报
回复
楼上各位回答的都对,通过父节点来删除子节点,使用ParentNode.RemoveChild(childNode)即可
眼里进了砂 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jinyongjie1984 的回复:]
你就先找data
然后便利他的孩子
找到kdata,如果内容是“啊啊啊啊。。”
通过父亲data 执行:RemoveChild

就OK啦!~~
[/Quote]
jinyongjie1984 2008-07-17
  • 打赏
  • 举报
回复
没看到你发的原格式

其实按照我发的代码

你就先找data
然后便利他的孩子
找到kdata,如果内容是“啊啊啊啊。。”
通过父亲data 执行:RemoveChild

就OK啦!~~
jinyongjie1984 2008-07-17
  • 打赏
  • 举报
回复
我这段代码你仔细看一下,一定能解决你的问题

思路是这样的
1 你首先的找你要删除这个结点的父结点
2 然后便利他的孩子
3 找到你要找的数据
4 通过父亲删除他的孩子结点

String strPath = customerPath.getPath();
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.Load(strPath);
//上面的是读文件

XmlNodeList rootList = XmlDoc.GetElementsByTagName("Customer");//这个是父结点
foreach (XmlNode xn in rootList)//每个孩子便利一下
{
XmlElement xe = (XmlElement)xn;
XmlNodeList childList = xe.ChildNodes;

XmlElement cxe1 = (XmlElement)childList[0];
if (cxe1.InnerText == strName)//这里改成你的判断条件
{
rootList.RemoveChild(xe);//注意:删除孩子,通过父亲
MessageBox.Show("删除成功!");
break;
}
}
XmlDoc.Save(strPath);
5207 2008-07-17
  • 打赏
  • 举报
回复
xmlDoc.ChildNodes.Delete()
zzyhuian06142 2008-07-17
  • 打赏
  • 举报
回复
XmlDocument doc = new XmlDocument();
doc.Load("data.xml");
XmlNode xn = doc.SelectSingleNode("NewDataSet/data[kdate=啊啊啊啊啊啊");
xn.ParentNode.RemoveChild(xn);
lifeixie 2008-07-17
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8"?>
<NewDataSet>
<data>
<id>888</id>
<kmobile>kkkkk</kmobile>
<kdate>C#dasf</kdate>
<kfrom>8</kfrom>
<kdata>88888.3</kdata>
</data>
<data>
<id>adfs</id>
<kmobile>dfas</kmobile>
<kdate>dfas</kdate>
<kfrom>adfs</kfrom>
<kdata>sdf</kdata>
</data>
</NewDataSet>



这是原格式!!!

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧