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>
只删除了信息 节点却还在
问怎么才能够删除啊?
谢谢 --------------------编程问答-------------------- 参考如下
--------------------编程问答-------------------- xnl = Doc.SelectNodes("/students/student[name[text() = 'zhangfayu']]");
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");
这行删下去~~~~~~~~ --------------------编程问答--------------------
--------------------编程问答-------------------- 請問樓上的先進~~
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#