Может ли кто-нибудь сказать мне, как удалить определенный узел из XML-файла?
bool retval = false; XmlDocument doc = new XmlDocument(); try { doc.Load(frmMain.FetchFileName(sFromFile)); XmlNodeList nodes = doc.GetElementsByTagName("Type"); foreach (XmlNode node in nodes) { if (node.FirstChild.InnerText == "Birthday") { // Have found the right node. ? How do I delete it? // node.RemoveChild(node.FirstChild); Not like this // doc.RemoveChild(node); Nor like this // node.RemoveChild(node); Nor like this // node.RemoveAll(); // This gives no error node.ParentNode.RemoveChild(node); // This gives no error doc.Save(sFromFile); retval = true; break; } } } catch { MessageBox.Show("Exception!!!", "Oops!"); return false; } return retval; }
Что я уже пробовал:
Я попробовал код выше, как вы можете видеть, первые три попытки, которые я сделал, потерпели неудачу.
Две попытки выполнили код без жалоб (прокомментировано это не дает никакой ошибки), но
на самом деле ничего не удалил из файла. Вот фрагмент xml - файла.
Код ищет и находит узел дня рождения, который я пытаюсь удалить
так что впоследствии файл должен выглядеть вот так:
<?xml version="1.0"?> <importanttype> <type> <name>Appointment <predefined>Yes . . a bunch of other nodes in here . <type> <name>Holiday <predefined>Yes
Я совершенно сбит с толку. Кто-нибудь может мне помочь - пожалуйста.
Благодарю тебя в предвкушении, Ноэль.