从XML中删除节点

时间:2011-05-14 17:42:26

标签: asp.net xml xpath

我很亲密。如果ASP TEXT BOX的姓氏与XML“条目”匹配,我要求从XML文件中删除条目。

这是按钮脚本。请注意XmlNode PhoneBook行:

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文件中选择正确的节点?

1 个答案:

答案 0 :(得分:3)

试试这个:

XmlNode PhoneBook = document.SelectSingleNode("/phoneBook/entry[lastName/text()='" + txtLastName.Text + "']");

您尝试过滤element而不是attribute,因此您无法使用@符号。

此XPath返回第二个entry元素(我测试了它,它可以工作):

/phoneBook/entry[lastName/text()='twoL']