Быстро и легко. Разбор (парсинг) XML документов с помощью TXMLDocument

TXMLDocument – стандартный компонент для работы с XML, который входит в состав как VCL, так и FireMonkey. Данный компонент позволяет разбирать уже готовые XML файлы и формировать новые. При этом он выполняет обе задачи достаточно просто и эффективно.

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

Рассмотрим разбор XML на примере документа следующей структуры:

В документе имеется корневой элемент test, два обычных узла node1 (имеет атрибут attr) и node2, а также узел array, представляющий собой, по сути, массив некоторых данных.

Допустим, узел node1 и его атрибут необходимо интерпретировать как текст, node2, как числовое значение, а содержимое узла array, как набор строковых данных.

Реализация

Вначале необходимо загрузить XML документ из файла.

Далее получаем корневой элемент:

После этого можно приступать непосредственно к самому процессу разбора (парсинга).

Для доступа к дочерним узлам используется свойство ChildNodes, которое возвращает массив элементов IXMLNodeList. Для получения конкретного узла (элемента IXMLNode) нужно обратиться к нему по имени или номеру (нумерация начинается с нуля).

Содержимое узла доступно с помощью свойства Text в виде строки.

Доступ к атрибутам конкретного узла осуществляется аналогичным образом при помощи свойства Attributes, которое возвращает массив типа OleVariant содержащий непосредственно сами значения атрибутов.

Извлечём значение первого узла и его атрибута.

Значение второго узла извлекается аналогично, но с учётом того, что его требуется интерпретировать как число.

Для обхода массива потребуется цикл с обращением к каждому элементу по его номеру.

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

Пример программы разбора XML

Несмотря на простоту, подобным образом можно выполнить разбор (парсинг) XML документов практически любой структуры и, соответственно, сложности.

Особенности работы с TXMLDocument в FireMonkey

В отличие от VCL, FireMonkey кроссплатформенная библиотека. Поэтому при работе с TXMLDocument в проектах FireMonkey требуется указывать программу, которая будет заниматься непосредственным разбором XML разметки в свойстве DOMVendor.

Доступны три варианта. MSXML для Windows (используется в этой операционной системе по умолчанию) и два кроссплатформенных Omni XML ADOM XML v4.

Если приложение предназначено для использования не только в Windows или вообще не предназначено для этой операционной системы, нужно обязательно учитывать данное обстоятельство и правильно выбирать программу для разбора XML разметки.

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

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