27 документов
← К списку

Описание структуры JSON-конфигурации для отбора

страница

Описание структуры JSON-конфигурации для отбора

JSON-конфигурация содержит поля type и value.

Поле type указывает тип фильтра для документа. Поле value указывает значения, которые должны содержаться в узле.
Структура и содержимое поля value зависят от типа фильтра.

 

Тип фильтра

Описание

attribute

Отбор атрибутов с указанными свойствами.

hasattribute

Отбор узлов-элементов, содержащих атрибуты с указанными свойствами.

elementname

Отбор узлов-элементов, имя тега которых соответствует указанному шаблону.

not

Отбор узлов, не соответствующих указанному фильтру.

parent

Отбор узлов, родитель которых содержит указанные свойства.

intersection

Отбор узлов, отвечающих условиям нескольких фильтров одновременно.

union

Отбор узлов, отвечающих условиям одного из указанных фильтров.

nodeType

Отбор узлов по типу 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

Отбор узлов, не соответствующих указанному фильтру.

Пример:

{
  "type": "not",
  "value": {
             "type": "elementname",
              "value": {
                         "value": "di",
                          "operation": "startswith"
                          }
               }            
}

Будут отобраны узлы, имя тега которых не содержит "di".

parent

Отбор узлов, родитель которых содержит указанные свойства.

Пример:

{
  "type": "parent",
  "value": {
                "value": "div",
                "operation": "equals"
              }
}

Будут отобраны узлы, родителем которых является элемент "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.
Все типы фильтров


     Методическая информация