Чат codeby в telegram перезагрузка

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

DOM часть первая

В состав библиотеки базовых классов (BCL) платформы .NET Framework входит сборка System.Xml.dll, в которой хранится реализация технологии DOM.

XML DOM (Document Object Model)

DOM (Объектная модель документа) — это не зависящий от платформы и языка интерфейс, который позволяет получать доступ к XML файлам, изменять их структуру и содержимое.

Представляет содержимое файла XML в виде дерева узлов хранимое в памяти компьютера.

Принцип работы DOM

Для начала работы необходимо подключить в свой проект пространство имён: System.XML. Обычно оно подключается автоматически при создании проекта.

system.xml

Основная работа с XML файлами осуществляться благодаря dll сборке System.Xml, которая предоставляет для работы с DOM все необходимые типы и члены.

Создание файла XML

Вне зависимости от типа задачи, любая работа с DOM, начинается с построения виртуального файла XML в памяти компьютера, точнее сказать каркаса будущего файла. В платформе .NET данную задачу решает класс XMLDocument. Для этого необходимо создать объект данного класса.

Открытие файла XML

После того, как виртуальный файл (каркас) создан. Можно перейти к работе с физическим файлом XML. Физический файл — это файл, который храниться на жёстком диске. Для работы с физическим файлом, применяется метод Load(), всё того же класса XMLDocument.

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

Пример создания создания виртуального файла.

После того, как был создан виртуальный файл в памяти компьютера, Вы можете начать работать с ним, как с обычным физическим файлом. То есть выполнять любые обычные операции: добавлять, изменять, удалять данные в файле XML и многое другое.

При этом надо помнить, что все изменения затрагивать виртуальный файл, а не физический!

Сохранение в XML файл

После того, как проделаны все необходимые операции над виртуальным файлом, необходимо выполнить выгрузку или сохранение данных в физический файл. Чтобы внести изменения в физический файл используется метод Save(), всё того же класса XMLDocument.

Следующий пример демонстрирует, как можно сохранить или выгрузить данные в физический XML файл.

Принцип работы:

XmlDocument

Как видно DOM, очень затратный в плане ресурсов инструмент для работы с XML документами. Независимо от количества записей в файле, мы сначала будем считывать все содержимое в память компьютера, а затем все эти данные сохранять обратно в этот же файл. При этом, производиться перезапись всего содержимое файла, вне зависимости от количества внесенных данных или изменений.


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

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

Узлы (Node)

Для дальнейшей работы нам понадобиться создать XML файл, который мы будем использовать в качестве примера.

Весь XML файл – это один объект, который можно представить в виде дерева узлов. Под узлом можно понимать любое содержимое файла XML, будь-то декларация, комментарий, элементы и другое. То есть нужно запомнить, что к чему бы мы не обращались в XML файле, с точки зрения DOM, будет являться узлом (Node). Один узёл может содержать любое количество элементов.

Если наш, выше описанный пример, представить в виде дерева, то получим следующее:

DOM

Типы узлов

Дерево представляет собой столб, под которым подразумевается корневой (root) элемент, в нашем случаи – это элемент “garage”. Все узлы крепятся к данному столбу, как ветки у дерева. Так как узлов может быть много, они делятся на типы, вот некоторые из них:

DOCUMENT документ document
ELEMENT элемент <car> </car>
ATTRIBUTE атрибут элемента id=&#034;1&#034;
TEXT текстовый узел текст
COMMENT комментарий <!&#8212;пыщ-пыщ &#8212;>

В .NET Framework, для получения типа узла применяется класс Xml Node Type. А в свою очередь, для каждого типа есть свой класс для работы с ним.

Типы узлов и классы для работы с нимиXml Node Type .NET Framework Class

Document XmlDocument
Document Type XmlDocumentType
Element XmlElement
Attribute XmlAttribute
Text XmlText
Entity XmlEntity
Comment XmlComment

Корневой элемент

Как упоминалось ранее, корневой элемент является столбом, к которому крепятся узлы.

Для того, чтобы научиться передвигаться по дереву, необходимо для начала получить в нашем коде root-элемент, от которого мы будем отталкиваться, для достижения нужного узла.

Получение корневого элемента:

В результате выполнения данного кода, на экран будет выведено слово &#171;garage&#187;, которое является именем нашего root-элемента. То есть доступ к корневому элементу был получен, и теперь отталкиваясь от этой точки, мы может перемещаться по дереву и получать нужные нам данные, а так же добавлять новые узлы в наше дерево, но об этом более подробно в следующей статье.

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


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

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

Похожие темы

Заполнение TreeView данными из XML файла... c# Работа с TreeView. Часть 2 Продолжаем работать с элементом управления TreeView и сегодня рассмотрим следующие моменты: создание и добавления узлов...
Чтение Xml файла с выводом данных в DataGridView в... Как выполнить чтение xml файла с выводом данных в DataGridView? В этой статье хочу показать на простом примере, как можно выполнить чтение xml файла ...
Шаблон логотипа дома Шаблон логотипа дома хорошо впишется во все проекты по недвижимости, вроде агентств, строителей, конструкторов, инженеров инфраструктуры и дорог и дру...
Шаблон логотипа абстрактного дома... Шаблон логотипа абстрактного дома был создан с мыслями о недвижимости — агенства недвижимости, застройщики, конструкторы, гражданские и дорожн...
Удаление узла в xml документе... Как удалить узел в xml документе? В этой небольшой заметке хочу показать Вам, как удалить узел в xml документе с помощью технологии Linq to XML. И...