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

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

Похожие темы

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