Удаление узла из XML - PullRequest
0 голосов
/ 14 мая 2011

Я очень близко. Я прошу удалить запись из XML-файла, если фамилия ASP TEXT BOX совпадает с «записью» 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();
}

Я продолжаю получать сообщения об ошибках, полагаю, что я не выбираю правильный узел в файле XML с помощью SelectSingleNode?

1 Ответ

3 голосов
/ 14 мая 2011

Попробуйте:

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

Вы пытаетесь фильтровать по element, а не по attribute, поэтому вы не можете использовать знак @.

Этот XPath возвращает 2-й элемент entry (я проверял, он работает):

/phoneBook/entry[lastName/text()='twoL']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...