Создание XML документов с помощью TXMLDocument

В статье посвящённой разбору XML документов при помощи TXMLDocument уже упоминалось о том, что данный компонент способен не только разбирать, но и создавать XML документы. Рассмотрим процесс создания XML более подробно.

Постановка задачи

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

При этом положим, что количество дочерних узлов у узла array неограниченно, а атрибуты attr и tag узлов node2 и node4 соответственно изначально имеют числовой формат.

Реализация

Попробуем сформировать подобный XML документ в Delphi.

Для создания узлов XML служит метод AddChild. В данном случае, лучше всего подходит его перегрузка, которая принимает только имя узла.

Вначале создадим корневой узел.

Так как метод AddChild возвращает элемент IXMLNode, заполнять значения во вновь создаваемых узлах можно сразу же в процессе создания, как показано ниже.

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

Или оператор with.

В результате будет полностью сформирован узел node2.

Узел node3 имеет значительно более сложную структуру. Помимо собственного значения, он содержит дочерний узел, который в свою очередь включает ещё ряд однотипных узлов (по сути, является массивом).

Однако, несмотря на громоздкую «конструкцию» узел node3 можно легко сформировать, используя вложенный оператор with.

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

Узел node4 создаём полностью по аналогии с узлом node2.

Теперь, когда XML документ полностью сформирован, остаётся только сохранить его в файл.

Ниже показан скриншот программы, которая формирует данный XML документ.

Результат её работы.

Очевидно, что по своей сложности создание XML документа при помощи компонента TXMLDocument практически не отличается от процесса разбора. Также необходимый функционал в обоих случаях достаточно удобен. Поэтому, данный компонент прекрасно подходит для решения почти любых задач связанных с обработкой XML.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *