Описание структуры JSON-конфигурации для отбора
страницаОписание структуры JSON-конфигурации для отбора
JSON-конфигурация содержит поля type и value.
Поле type указывает тип фильтра для документа. Поле value указывает значения, которые должны содержаться в узле.
Структура и содержимое поля value зависят от типа фильтра.
Тип фильтра
Описание
Отбор атрибутов с указанными свойствами.
Отбор узлов-элементов, содержащих атрибуты с указанными свойствами.
Отбор узлов-элементов, имя тега которых соответствует указанному шаблону.
Отбор узлов, не соответствующих указанному фильтру.
Отбор узлов, родитель которых содержит указанные свойства.
Отбор узлов, отвечающих условиям нескольких фильтров одновременно.
Отбор узлов, отвечающих условиям одного из указанных фильтров.
Отбор узлов по типу DOM.
attribute
Отбор атрибутов с указанными свойствами.
К значениям данного фильтра применимы операции:
- nameequals - сравнение по имени атрибута,
- valueequals - сравнение по значению атрибута,
- namestartswith - имя атрибута должно начинаться с указанного значения,
- valuestartswith - значение атрибута должно начинаться с указанного значения,
- namecontains - имя атрибута должно содержать значение,
- valuecontains - значение атрибута содержит указанное значение,
- namematchesregex - имя атрибута соответствует выражению,
- valuematchesregex - значение атрибута соответствует выражению.
Пример:
| { "type": "attribute", "value": { "value": "width", "operation": "nameequals" } } |
Во всех узлах документа будут отобраны атрибуты "width".
Все типы фильтров
hasattribute
Отбор узлов-элементов, содержащих атрибуты с указанными свойствами.
К значениям данного фильтра применимы операции:
- nameequals - сравнение по имени атрибута,
- valueequals - сравнение по значению атрибута,
- namestartswith - имя атрибута должно начинаться с указанного значения,
- valuestartswith - значение атрибута должно начинаться с указанного значения,
- namecontains - имя атрибута должно содержать значение,
- valuecontains - значение атрибута содержит указанное значение,
- namematchesregex - имя атрибута соответствует выражению,
- valuematchesregex - значение атрибута соответствует выражению.
Пример:
| { "type": "attribute", "value": { "value": "([a-z]*bord[a-z]*)", "operation": "namematchesregex" } } |
Будут отобраны все элементы, атрибуты которых соответствуют заданному выражению ([a-z]*bord[a-z]*).
Все типы фильтров
elementname
Отбор узлов-элементов, имя тега которых соответствует указанному шаблону.
К значениям данного фильтра применимы операции:
- equals - сравнение на равенство,
- startswith - значение должно начинаться с выражения,
- contains - значение должно содержать выражение,
- matchesregex - имя элемента соответствует выражению.
Пример:
| { "type": "elementname", "value": { "value": "di", "operation": "startswith" } } |
Будут отобраны узлы "dir" и "div".
Все типы фильтров
not
Отбор узлов, не соответствующих указанному фильтру.
Пример:
|
{ |
Будут отобраны узлы, имя тега которых не содержит "di".
parent
Отбор узлов, родитель которых содержит указанные свойства.
Пример:
|
{ |
Будут отобраны узлы, родителем которых является элемент "div".
Все типы фильтров
intersection
Отбор узлов, отвечающих условиям нескольких фильтров одновременно.
Пример:
| { "type": "intersection", "value": [{Фильтр1}, {Фильтр2}] } |
Где {Фильтр1}, {Фильтр2} - любые из доступных фильтров.
Будут отобраны узлы, удовлетворяющие условиям обоих фильтров.
Все типы фильтров
union
Отбор узлов, отвечающих условиям одного из указанных фильтров.
Пример:
| { "type": "union", "value": [{ Фильтр1}, { Фильтр2}] } |
Где {Фильтр1}, {Фильтр2} - любые из доступных фильтров.
Будут отобраны узлы, отвечающие либо отбору {Фильтр1}, либо отбору {Фильтр2}.
Все типы фильтров>
const
Для любого узла фильтр будет возвращать true или false, в зависимости от значения value.
Пример:
| { "type": "parent", "value": { "type": "const", "value": true } } |
С помощью такого отбора можно узнать, существует ли предок (parent) у узла.
Все типы фильтров
nodeType
Отбор узлов по типу DOM. Можно указать следующие типы узлов:
- element,
- attribute,
- text,
- cdata,
- entityreference,
- entity,
- processinginstruction,
- comment,
- document,
- documenttype,
- documentfragment,
- notation,
- xpathnamespace.
Пример:
| { "type": "nodetype", "value": { "value": ["element", "text"] } } |
Будут отобраны узлы типа text.
Все типы фильтров