Действие парсера «Выборка из XML»

Параметры действия:

Предназначение действия:

Выполняет выборку из XML по запросу в формате XPath, и выводит массив узлов XML из значений из найденных узлов.
Исходным значением для функции должен быть либо валидный XML, либо путь к файлу XML.

В режиме вывода «text» (второй параметр), можно в третьем параметре задать маску текста вида {name}={@id}={brand}, где в фигурных скобках - названия извлекаемых тегов XML (name, brand) или название атрибута (id).
Например, из найденного узла XML вида MyNameMyBrand
при маске текста {name}|{@id}|{brand} получится значение MyName|1234|MyBrand

Возвращаемое значение: результат выборки (XML или текст)

 


Параметр «Запрос XPath»

Тип параметра: произвольное текстовое значение

 

Параметр «Что выводить (режим вывода)»

Тип параметра: выбор из списка предопределенных значений

Допустимые значения параметра: text; xml; attribute

Значение по умолчанию: text

 

Параметр «Название атрибута / маска текста»

Тип параметра: произвольное текстовое значение

 

Параметр «Значение по умолчанию»

Тип параметра: произвольное текстовое значение

 

 

Примеры использования:

Простые варианты Xpath:

Исходное значение
Часть HTML-кода веб-страницы (длиной 2290 символов)

Действие Параметр Значение Результат
ищем элементы results (на любой глубине вложенности), а внутри них - элементы url
Выборка из XML Запрос XPath //results//url Массив из 3 значений:
/
https://t.me/excel_programmer
https://vk.com/excelvba_ru
Что выводить text
Название атрибута / маска текста
Значение по умолчанию
Сохранить результат в переменную
Использовать новое значение да

 

Действие Параметр Значение Результат
ищем элемент found-human (на любой глубине вложенности)
Выборка из XML Запрос XPath //found-human Текст (длиной 22 символа)
Что выводить text
Название атрибута / маска текста
Значение по умолчанию
Сохранить результат в переменную
Использовать новое значение да

 

Действие Параметр Значение Результат
Выборка из XML Запрос XPath response/results//doc/headline Массив из 2 значений:

Что выводить xml
Название атрибута / маска текста
Значение по умолчанию
Сохранить результат в переменную
Использовать новое значение да

 

Действие Параметр Значение Результат
ищем элемент categ (в любом уровне вложенности), и берём из него атрибут name
Выборка из XML Запрос XPath //categ Массив из 4 значений:

Что выводить attribute
Название атрибута / маска текста name
Значение по умолчанию
Сохранить результат в переменную
Использовать новое значение да

 

Ищем элементы doc (на любом уровне вложенности), и на основании каждого найденного элемента собираем результат из вложенных в него тегов:

Действие Параметр Значение Результат
Выборка из XML Запрос XPath //doc Массив из 4 значений:

Что выводить text
Название атрибута / маска текста результат {@id}: {title}, домен {domain}
Значение по умолчанию
Сохранить результат в переменную
Использовать новое значение да

Ну и пример посложнее, с извлечением текста текущего тега, и получением атрибутов с автоматическим их форматированием:

Исходное значение
Часть HTML-кода веб-страницы (длиной 404 символа)

Действие Параметр Значение Результат
Выборка из XML Запрос XPath //time-interval Массив из 3 значений:

Что выводить text
Название атрибута / маска текста {} запросов {@from=d mmmm с HH:NN} до {@to=HH:NN}
Значение по умолчанию
Сохранить результат в переменную
Использовать новое значение да

Комментарии

Используйте действие «HTML: поиск тегов», там куда больше возможностей
(и, по умолчанию, там выводятся все найденные теги)

Аналогичный вопрос интересует. Автор, откликнитесь, пожалуйста.
Если в документе несколько одинаковых тегов на одном уровне (например {image}), извлекается только первый. Как указать в поле (Название атрибута/маска текста), что извлечь нужно все?