Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

Как удалить узел в xml документе?

В этой небольшой заметке хочу показать Вам, как удалить узел в xml документе с помощью технологии Linq to XML.

И так, для начала создадим и добавим в проект xml файл, который имеет следующую структуру:

Затем добавим строку, которая позволяет при работе с Linq to XML напрямую обращаться к типам, не указывая полных имен.

ключевое слово using

Удаление xml узла

В качестве первого примера рассмотрим, как удалить последний узел в xml документе.

Сначала с помощью метода Load загружаем xml файл и строим DOM дерево. Затем, с помощью метода Nodes, получаем коллекцию всех xml узлов, кроме корневого узла, которые содержаться в данном xml документе. После чего, используя метод расширения ElementAt, получаем доступ к элементам, полученной ранее коллекции. И с помощью метода Remove удаляем указанный xml узел.

Но, так же мы можем, удалить последний xml узел и, не перебирая и получая все узлы, а сразу же обратившись к нему с помощью свойства LastNode.

результат

удаление xml узла

Удаление узла с атрибутом

Во втором примере задача остаётся той же, что и в первом примере, но только в данном случаи мы будем удалять узел, зная значение его атрибута. Например, удалим xml узел, который имеет атрибут id со значение три.

В результате будет удалён третий (последний) узел в xml файле.

Удаление дочернего xml узла

Так же очень часто встречается задача, когда необходимо удалить дочерний узел в xml документе. Например, предположим, что нам необходимо удалить в созданном чуть ранее xml файле дочерний узел brothers.

атрибут xml узла

решение:

В данном примере сначала находим второй узел, а затем, используя операцию явного приведения и метод Remove, удаляем дочерний xml узел.


Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

Обратиться ко второму узлу мы можем так же и, не используя метод Nodes, а например следующим образом:

результат

дочерний узел

Как удалить все узлы в xml файле?

И последний пример, в котором рассмотрим ситуацию, когда необходимо удалить все узлы в xml файле. Для решения данной задачи воспользуемся следующим решением:

В результате будут удалены все узлы в xml документе, кроме корневого узла!

xml файл

Если же Вам необходимо удалить абсолютно все узлы, то тогда воспользуйтесь следующим способом:

Update.

В данной статье, во многих приведенных примерах, используется явное и не явное приведение типа XNode к типу XElement, например:

Такой способ можно использовать только в том случаи, если Вы точно уверены, что все узлы в xml файле имеют тип XElement (элемент). Если же при переборе в цикле мы попадем на другой тип, например комментарий (XComment), то в таком случае произойдет выброс исключения.

Поэтому, если Вам необходимо получить все узлы только типа XElement, то в таком случае лучше всего воспользоваться методом Descendants, например:

Данный метод всегда возвращает только коллекцию элементов, что сразу избавляет нас от выше описанной проблемы.

Следующий пример так же приводит к возникновению исключения при тех же ранее описанных условиях:

Чтобы этого избежать, можно добавить следующую проверку:

На этом всё, если есть какие-то вопросы, то оставляйте их в комментариях.

Читайте также:


Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

Похожие темы

Заполнение TreeView данными из XML файла... c# Работа с TreeView. Часть 2 Продолжаем работать с элементом управления TreeView и сегодня рассмотрим следующие моменты: создание и добавления узлов...
DOM — Объектная модель документа для работы ... DOM часть первая В состав библиотеки базовых классов (BCL) платформы .NET Framework входит сборка System.Xml.dll, в которой хранится реализация техно...
Чтение Xml файла с выводом данных в DataGridView в... Как выполнить чтение xml файла с выводом данных в DataGridView? В этой статье хочу показать на простом примере, как можно выполнить чтение xml файла ...
Язык XML практика и теория Введение в язык XML Данный раздел посвящен работе с XML. В нём будет собран, как теоретический, так и практический материал. Будут рассмотрены основн...
У меня не открывается xml файл, что делать?... Что делать, если не удается открыть xml файл? В этой статье хотелось бы рассмотреть некоторые причины, из-за которых очень часто не удается открыть x...