关于c#删除xml指定节点的问题

zyswtwang 2011-07-08 03:36:33
现有如下xml文件
<?xml version="1.0" encoding="gb2312"?>
<UserInfo>
<User Name="h8xEeH37s0O2Wd/DmfT/MQ==" Pass="bgh3LBMPPTE=" />
<User Name="/6h/FcbroxE=" Pass="/6h/FcbroxE=" />
<User Name="EK1dSwqkP6M=" Pass="EK1dSwqkP6M=" />
<User Name="P6gpKFTJgDk=" Pass="P6gpKFTJgDk=" />
</UserInfo>

使用如下代码删除指定节点:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("User.xml");
XmlNodeList xnl = xmlDoc.SelectSingleNode("UserInfo").ChildNodes;
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("Name") == strTemp)
{
xe.RemoveAll();
}
}
xmlDoc.Save("User.xml");

有个问题,删除后的xml会成为下面这种:


<?xml version="1.0" encoding="gb2312"?>
<UserInfo>
<User Name="h8xEeH37s0O2Wd/DmfT/MQ==" Pass="bgh3LBMPPTE=" />
<User Name="/6h/FcbroxE=" Pass="/6h/FcbroxE=" />
<User />
<User />
</UserInfo>

请问如何才能将<User />一同删除?
...全文
189 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
嘴哥臭鼬 2011-07-08
  • 打赏
  • 举报
回复
removechild
mjp1234airen4385 2011-07-08
  • 打赏
  • 举报
回复
我是酱油帝
孟子E章 2011-07-08
  • 打赏
  • 举报
回复
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("Name") == strTemp)
{
xn.ParentNode.RemoveChild(xn);
}
}
worship123123 2011-07-08
  • 打赏
  • 举报
回复
用xnl.RemoveChild()方法

foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("Name") == strTemp)
{
xnl.RemoveChild(xe);
}
}

111,125

社区成员

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

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

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