Codeby.net совместно с PHDays 8

Объявляют о проведении грандиозного конкурса с умопомрачительными призами ! Получи бесплатно билет на PHDays 8, деньги, футболку с символикой 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 в telegram перезагрузка

Обсуждаем вопросы информационной безопасности, методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие.  Подробнее ...

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

метод AddBeforeSelf

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

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

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

результат

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

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

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

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

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

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

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

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

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

результат

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

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

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


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

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

Похожие темы

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