循循善诱:xml删除一个节点

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 21:17:07
xml文件是这样的结构
<dbGuest>
<user>
<name>张三</name>
<city>上海</city>
<email>ddd@163.com</email>
</user>
<user>
<name>王二</name>
<city>上海</city>
<email>abc@163.com</email>
</user>
<user>
<name>李四</name>
<city>上海</city>
<email>lll@163.com</email>
</user>
</dbGuest>
删除一个节点的程序

XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Server.MapPath(".\\dbGuest.xml"));
XmlNodeList nodelist = xmldoc.SelectSingleNode("dbGuest").ChildNodes;//找到根节点,并读出其子节点列表

foreach (XmlNode xn in nodelist)
{
XmlElement xel = (XmlElement)xn;
XmlNodeList node = xel.GetElementsByTagName("name");
if(node.Count>0)
{
if (node[0].InnerText == "张三")
xel.RemoveAll();
break;
}
}
xmldoc.Save(Server.MapPath(".\\dbGuest.xml"));

删除的结果
<dbGuest>
<user>
</user>
<user>
<name>王二</name>
<city>上海</city>
<email>abc@163.com</email>
</user>
<user>
<name>李四</name>
<city>上海</city>
<email>lll@163.com</email>
</user>
</dbGuest>
问题是留下了一个空的<user></user>节点,在显示的数据时,那里就是一个空行,怎么彻底的删除一个user节点呢。