powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как удалить ветоки из XML?
3 сообщений из 3, страница 1 из 1
Как удалить ветоки из XML?
    #38707075
Snak2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, пытаюсь написать функцию удаления веток из XML файла, необходимо удалить все ветви control содержащие атрибут tip="0".

Пример XML:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<?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>




Я пытаюсь удалить эти ветви так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
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);



К сожалению nodeList всегда остается пустым скорее всего из за неправильного XPatch. Пожалуйста, подскажите в чем ошибка.
...
Рейтинг: 0 / 0
Как удалить ветоки из XML?
    #38707283
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) doc.DocumentElement это корневой элемент, его потомки это процессинговая инструкция и metaForm, соответственно никаких control в нем нет.

2) tip это не тег, а атрибут, у имен атрибутов должна быть собачка.

Правильно так:

Код: c#
1.
String.Format("metaForm/controls/control[@tip='{0}']", tip)
...
Рейтинг: 0 / 0
Как удалить ветоки из XML?
    #38707416
Snak2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy, Спасибо большое помогло.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как удалить ветоки из XML?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]