Написать функцию удаления веток из 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);