Параметры действия:
Предназначение действия:
Выполняет выборку из 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 символов)
|
| Действие |
Параметр |
Значение |
Результат |
| Выборка из XML |
Запрос XPath |
//results//url |
Массив из 3 значений:
/
https://t.me/excel_programmer
https://vk.com/excelvba_ru |
| Что выводить |
text |
| Название атрибута / маска текста |
|
| Значение по умолчанию |
|
| Сохранить результат в переменную |
|
| Использовать новое значение |
да |
| Действие |
Параметр |
Значение |
Результат |
| Выборка из XML |
Запрос XPath |
response/results//doc/headline |
Массив из 2 значений:
|
| Что выводить |
xml |
| Название атрибута / маска текста |
|
| Значение по умолчанию |
|
| Сохранить результат в переменную |
|
| Использовать новое значение |
да |
| Действие |
Параметр |
Значение |
Результат |
| Выборка из 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}), извлекается только первый. Как указать в поле (Название атрибута/маска текста), что извлечь нужно все?