从XML中删除节点
我非常接近。如果ASP TEXT BOX的姓氏与XML“条目”匹配,我要求从XML FILE中删除条目。从XML中删除节点
这是按钮脚本。请把XmlNode的电话簿行注:
protected void deletion_Click(object sender, EventArgs e)
{
XmlDocument document = new XmlDocument();
document.Load(Server.MapPath("~/App_Data/PhoneBook.xml"));
XmlElement root = document.DocumentElement;
XmlNode PhoneBook = document.SelectSingleNode("//event[@lastName='" + txtLastName.Text + "']");
PhoneBook.ParentNode.RemoveChild(PhoneBook);
document.Save(Server.MapPath("~/App_Data/PhoneBook.xml"));
GridView1.DataBind();
}
我不断收到错误,我猜我没有选择使用的SelectSingleNode XML文件正确的节点?
试试这个:
XmlNode PhoneBook = document.SelectSingleNode("/phoneBook/entry[lastName/text()='" + txtLastName.Text + "']");
你尝试在element
过滤器,而不是一个attribute
,所以你不能使用@
迹象。
这个XPath返回第二entry
元素(我测试了它,它的工作原理):
/phoneBook/entry[lastName/text()='twoL']
我收到下一行的错误:对象引用未设置为对象的实例。 PhoneBook.ParentNode.RemoveChild(电话簿); – user734699 2011-05-14 17:53:59
这是因为你的XPath不正确导致'PhoneBook'节点为'null'。你用姓氏测试什么价值? – 2011-05-14 17:57:27
twoL和我试过oneL – user734699 2011-05-14 18:02:34
你会得到什么样的错误?你能复制粘贴错误信息吗?或者只是结果与你期望的不同?你能指望什么? – Howard 2011-05-14 17:45:39
使用PhoneBook.ParentNode.RemoveChild(PhoneBook)获取错误; – user734699 2011-05-14 17:54:58