Почему бы не использовать XDocument
?
var xmlText = "<Elements><Element1 /><Element2 /></Elements>";
var document = XDocument.Parse(xmlText);
var element = document.XPathSelectElement("Elements/Element1");
element.Remove();
var result = document.ToString();
result
будет <Elements><Element2 /></Elements>
.
Или:
var document = XDocument.Load(fileName);
var element = document.XPathSelectElement("Elements/Element1");
element.Remove();
document.Savel(fileName);
[Изменить] Для .NET 2 вы можете использовать XmlDocument
:
XmlDocument document = new XmlDocument();
document.Load(fileName);
XmlNode node = document.SelectSingleNode("Elements/Element1");
node.ParentNode.RemoveChild(node);
document.Save(fileName);
[EDIT]
Если вам нужно удалить все дочерние элементы и атрибуты:
XmlNode node = document.SelectSingleNode("Elements");
node.RemoveAll();
Если вам нужно сохранить атрибуты, но удалить элементы:
XmlNode node = document.SelectSingleNode("Elements");
foreach (XmlNode childNode in node.ChildNodes)
node.RemoveChild(childNode);