Paranoid - курс от Codeby Security School

Представляем вашему вниманию курс от команды codeby - "Комплекс мер по защите персональных данных, анонимности в интернете и не только" Подробнее ...


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

Продолжаем работу с технологией Linq to XML и сегодня Вы узнаете, как добавить xml узел в xml документе.

Добавление xml узла

И так для начала нам нужно создать и добавить в проект XML файл, после чего поместим в него структуру, которая была создана в самом начале статьи: «Как удалить xml узел в xml документе».

Затем создадим xml узел, который будем использовать во всех ниже приведенных примерах данной статьи.

xml узел

Каждый пример всегда начинается с загрузки xml файла и создания DOM дерева, поэтому не забывайте указывать первой строкой следующую запись:

Чтобы получить доступ к классу XDocument, добавляем следующую строку:

А заканчивается каждый пример методом Save.

Если им не воспользоваться, то Вы не увидите внесенных Вами изменений в реальном xml файле, так как они останутся только в памяти.

На этом подготовительная часть закончена и теперь давайте рассмотрим несколько наиболее часто встречающихся операций.

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

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

Либо мы можем обратиться к последнему узлу с помощью свойства LastNode и добавить новый узел с помощью метода AddAfterSelf.

результат

метод Add

Как добавить xml узел между определенными узлами?

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

Для решения данной задачи мы можем воспользоваться, например одним из двух методов:

1. AddAfterSelf — позволяет добавить новый узел после указанного узла, например:

2. AddBeforeSelf, который так же добавляет новый xml узел, но только перед указанным узлом, например:

метод AddAfterSelf

В обоих примерах мы сначала с помощью метода Nodes получаем все узлы в текущем xml документе, а затем, используя метод ElementAt, указываем, от какого xml узла мы будем выполнять операцию добавления.


Codeby Security School от Сodeby

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


Результат в обоих случаях будет один и тот же.

метод AddBeforeSelf

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

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

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

результат

добавленный xml узел

Как добавить новый дочерний узел?

Чуть более "сложная" задача, в которой нам потребуется добавить дочерний xml узел после уже существующего дочернего узла brothers.

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

Но опять же является ли рациональным данное решение? Вполне, так как в текущем xml документе всего 4 узла, поэтому поиск всех узлов не займет много времени. Но, если бы узлов в текущем документе было бы гораздо больше, то данное решение нам бы не подошло. Опять же, зачем нам нужно находить все узлы, когда мы можем сразу же напрямую обратиться ко второму узлу, например, так:

После того, как второй узел был найден, нам осталось решить две задачи:

1. Найти дочерний узел brothers, например мы можем сделать это следующим образом:

2. Добавить перед ним новый дочерний узел. Для этого мы опять же воспользуемся уже знакомый методом AddAfterSelf.

А теперь объединим всё в одно решение:

результат

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

На этом всё, если у Вас есть какие-то задачи связанные с данной темой, и Вы не знаете, как их решить или у Вас есть какие-то вопросы, то оставляйте их в комментариях постараюсь помочь.

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


Безопасная сделка с гарантом Сodeby

Гарант является доверенным посредником между Участниками при проведении сделки.​ Услуга сайта «Проведение сделок через Гаранта» предоставляется всем зарегистрированным пользователям codeby.net Подробнее ...


Похожие темы

Как добавить XML файл в Solution Explorer... Как добавить XML файл в проект В окне Solution Explorer нажмите правую кнопку мыши на имени текущего проекта. В появившемся контекстном меню выберите...
Работа с xml файлами XML DOM 2 В предыдущей статье были описаны общие понятия касающиеся XML. В этой статье научимся выполнять основные действия, связанные с изменением, ...
Чтение Xml файла с выводом данных в DataGridView в... Как выполнить чтение xml файла с выводом данных в DataGridView? В этой статье хочу показать на простом примере, как можно выполнить чтение xml файла ...
Удаление узла в xml документе... Как удалить узел в xml документе? В этой небольшой заметке хочу показать Вам, как удалить узел в xml документе с помощью технологии Linq to XML. И...
Как переименовать домен виртуальной машины KVM (VM... Как переименовать виртуальную машину на основе KVM с foo на bar, используя опцию командной строки virsh в Linux? Существует два способа переименования...