Написать функцию удаления веток из XML файла, или как построить выражение XPatch? - C#
Формулировка задачи:
Доброго времени суток, пытаюсь написать функцию удаления веток из XML файла, необходимо удалить все ветви control содержащие атрибут tip="0".
Пример XML:
Я пытаюсь удалить эти ветви так:
К сожалению nodeList всегда остается пустым скорее всего из за неправильного XPatch. Пожалуйста, подскажите в чем ошибка.
<?xml version="1.0" encoding="UTF-8"?> <metaForm> <settings> ... </settings> <title> ... </title> <sections> ... </sections> <controls> control name="Имя" tip="1" precision="0" id="2"/> control name="Имя" tip="6" precision="0" id="15"/> control name="Имя" tip="0" precision="0" id="9"/> control name="Имя" tip="12" precision="0" id="8"/> control name="Имя" tip="0" precision="0" id="3"/> </controls> </metaForm>
string path = @"С:\Test\Test.xml"; int tip = 0; XmlDocument doc = new XmlDocument(); doc.Load(path); XmlNodeList nodeList; XmlNode root = doc.DocumentElement; nodeList = root.SelectNodes(String.Format("control[ tip='{0}']", tip)); foreach (XmlNode x in nodeList) { XmlNode outer = x.ParentNode; outer.RemoveChild(x); } doc.Save(path);
Решение задачи: «Написать функцию удаления веток из XML файла, или как построить выражение XPatch?»
textual
Листинг программы
string str = String.Format("//control[@tip='{0}']", tip);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д