Каталог решений - Альтернативные способы работы с XML. Часть 2: Введение в xPath или запросы к XML

Альтернативные способы работы с XML. Часть 2: Введение в xPath или запросы к XML

Альтернативные способы работы с XML. Часть 2: Введение в xPath или запросы к XML

В наличии

В предыдущей статье "Введение в DOM или объектная модель документа" было описано понятие объектной модели документа (DOM), раскрыты плюсы и минусы использования модели при разборе файлов XML, приведено сравнение с построчным последовательным разбором. Были представлены варианты выборки данных с помощью объекта 1С ДокументDOM. Теперь настало время познакомить читателей с самым, на мой взгляд, интересным способом извлечения данных из XML — при помощи языка запросов xPath.

Категория:

Описание

В предыдущей статье Введение в DOM или объектная модель документа было описано понятие объектной модели документа (DOM), раскрыты плюсы и минусы использования модели при разборе файлов XML, приведено сравнение с построчным последовательным разбором. Были представлены варианты выборки данных с помощью объекта 1С ДокументDOM. Теперь настало время познакомить читателей с самым, на мой взгляд, интересным способом извлечения данных из XML — при помощи языка запросов xPath (XML Path Language).

Модель DOM имеет древовидную структуру, зачастую ей проводят аналогию с организацией хранения файлов в папках, где каждый конечный узел сравнивают с файлом, нахождение которого заранее известно по пути до него через папки и подпапки. Не зря в названии языка присутствует слово «путь» (path в переводе с английского означает путь). Именно определение пути к данным лежит в основе xPath.

На вход конструкции xPath подается выражение, определяющее путь до искомых узлов, например такое «/someTag/someSubTag» (означает выборку всех элементов с именем someSubTag внутри элементов someTag, расположенных на первом уровне документа). На выходе образуется список найденных узлов. Список представляет собой коллекцию, которую можно обойти циклом и произвести манипуляции с узлами-элементами списка, например извлечь их значения.

Давайте подробнее остановимся на выражении xPath, определяющем путь, и его составных частях. Выражение состоит из так называемых шагов адресации (имен тегов), разделенных слэшем — косой чертой «/» и как уже было сказано выше — очень похоже на путь к файлу в файловой системе. Если путь начинается с «/», то это задает абсолютный путь к заданному элементу (от корня документа). Если же путь начинается с «//», то это означает произвольное (любое) количество уровней (от корня документа) перед искомым путем. Символ «*» в пути означает любой элемент, тот же символ в конце пути означает, что нужно выбрать все элементы по пути, указанному до этого символа, например «//someTag/someSubTag/*» (выбрать все элементы по пути /someTag/someSubTag, при этом расположение начала пути от корня документа не имеет значения и может начинаться на любом уровне).

Также в адресации могут использоваться квадратные скобки, которые задают более четкие критерии поиска, например «/someTag/someSubTag[1]» (первый элемент из найденных) или «/someTag/someSubTag[last()]» (последний элемент из найденных). Как видно, в квадратных скобках могут использоваться еще и специальные функции. Также в квадратных скобках могут задаваться условия на наличие у узлов атрибутов, на значение атрибутов, условия-отрицания и многое другое. Ниже приведена ссылка, по которой можно посмотреть различные варианты условий.

В 1С работа с xPath реализована через метод объекта ДокументDOM ВычислитьВыражениеXPath. Вариант синтаксиса языка 1с для работы с xPath приведен ниже:

вариант синтаксиса 1с для работы с xPath

Теперь для наглядности работы выборки xPath выражения посмотрите скриншоты ниже:

Пример 1

Пример 2

Пример 3

Пример 4

Пример 5

Углубиться в тему и посмотреть примеры (в т.ч. и более сложные) различных xPath выражений можно по этой ссылке.

has been added to your cart:
Оформление заказа