当前位置:编程问答 > C#/ASP.NET >

C#删除xml问题

XML删除问题
xml文档如下:
<?xml version="1.0" encoding="UTF-8"?>
<students>
    <student>
         <name>zhangfayu</name>
         <pwd>21</pwd>
         <id>123</id>
   </student>
<student>
        <name>lichao</name>
        <pwd>23</pwd>
        <id>234</id>
   </student>
</students>
删除代码(根据给定的id查找相应的项并删除)
XmlDocument Doc =new XmlDocument();
        XmlNodeList xnl;
            Doc.Load(Application.StartupPath + "\\students.xml");
            xnl = Doc.SelectSingleNode("students").ChildNodes;
            for (int i = 0; i < xnl.Count; i++)
            {
                if (xnl.Item(i).ChildNodes.Item(1).InnerText == cmbID.SelectedItem.ToString())
                {
                   xnl.Item(i).RemoveAll(xnl.Item(i));
                     
                }
            }
红色部分为删除代码
但是执行之后xml将变为
<?xml version="1.0" encoding="UTF-8"?>
<students>
    <student>
    </student><student>
        <name>lichao</name>
        <pwd>23</pwd>
        <id>234</id>
   </student>
</students>
只删除了信息 节点却还在 
问怎么才能够删除啊?
谢谢 --------------------编程问答-------------------- 参考如下


XmlDocument Doc = new XmlDocument();
XmlNodeList xnl;
Doc.Load("e:\\1.xml");
xnl = Doc.SelectNodes("/students/student[name[text() = 'zhangfayu']]");
xnl = Doc.SelectNodes(String.Format("/students/student[name[text() = '{0}']]",cmbID.SelectedItem.ToString()));
for (int i = xnl.Count - 1; i >= 0; i--)
{
    XmlNode node = xnl.Item(i);
    node.ParentNode.RemoveChild(node);
}
Doc.Save("e:\\1.xml");
--------------------编程问答-------------------- xnl = Doc.SelectNodes("/students/student[name[text() = 'zhangfayu']]");

这行删下去~~~~~~~~ --------------------编程问答--------------------

XmlDocument document = new XmlDocument();
document.Load(@"D:\LocalProject\IM2008\test.xml");
XPathNavigator navigator = document.CreateNavigator();
navigator.MoveToChild("students", string.Empty);
navigator.MoveToChild("student", string.Empty);
            

navigator.DeleteSelf();

--------------------编程问答-------------------- 請問樓上的先進~~
我想刪除XML資料~~
 XmlDocument Doc = new XmlDocument();
 XmlNodeList xnl;
        
 Doc.Load(Server.MapPath(".") + "\\XML\\76\\mp3player.xml");
 xnl = Doc.SelectSingleNode("player").ChildNodes;
 Response.Write(xnl);
 for (int i = 0; i < xnl.Count; i++)
 {
      if (xnl.Item(i).ChildNodes.Item(1).InnerText == cmbID.SelectedItem.ToString())
      {
                xnl.Item(i).RemoveChild(xnl.Item(i));
       }
 }
//網頁部份出現:編譯器錯誤訊息: CS0103: 名稱 'cmbID' 不存在於目前內容中
ASPX部分的按鈕應該要怎麼設定才可以抓到INDEX 的值? --------------------编程问答-------------------- XmlDocument Doc =new XmlDocument(); 
        XmlNodeList xnl; 
            Doc.Load(@"D:\WebSite2\11.xml"); 
            xnl = Doc.DocumentElement.GetElementsByTagName("student"); 
            for (int i = 0; i < xnl.Count; i++) 
            {
                if (xnl.Item(i).ChildNodes[2].InnerText.Trim() == "123")
                {

                    Doc.DocumentElement.RemoveChild(xnl.Item(i));
                }
            } 
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,