Перейти к основному содержимому

06 Группа “Анализатор”. Описание узлов

Узел csv

Узел csv в Палитре
Узел csv на Холсте

Выполняет преобразования между строкой в CSV формате и ее представлением в JavaScript-объекте, в любом направлении.

Принимает:

  • payload объект | массив | строка – JavaScript объект, массив или CSV-строка.

Выводит:

  • payload объект | массив | строка
  1. Если на входе значение строкового типа, узел попытается проанализировать его как CSV и создает объект JavaScript из пар ключ/значение для каждой строки. Затем узел либо отправит сообщение для каждой строки или одно сообщение, содержащее массив объектов.
  2. Если на входе JavaScript объект, узел попробует построить CSV-строку.
  3. Если на входе массив простых значений, узел построит однострочную CSV-строку.
  4. Если на входе массив массивов или массив объектов, создается многострочная CSV-строка.

Шаблон столбцов может содержать упорядоченный список имен столбцов. При преобразовании CSV в объект имена столбцов будут использоваться в качестве имен свойств. Кроме того, имена столбцов могут быть взяты из первой строки CSV.

При преобразовании в CSV шаблон столбцов используется для определения того, какие свойства извлекать из объекта и в каком порядке.

Если шаблон пуст, то узел может использовать простой список свойств, разделенных запятыми, предоставленных в msg.columns, чтобы определить, что извлечь. Если его нет, то все свойства объекта выводятся в том порядке, в котором они были найдены в первой строке.

Если входные данные являются массивом, то шаблон столбцов используется только для необязательного генерирования строки с заголовками столбцов.

Если выбрана опция 'разбирать числовые значения, строковые числовые значения будут возвращаться в виде чисел. К примеру, среднее значение в CSV-строке 1,"1,5",2.

Если выбрана опция включать пустые строковые значения, пустые строки будут возвращениы в результате. К примеру, среднее значение в CSV-строке "1","",3.

Если выбрана опция включить null-значения, null-значения будут возвращениы в результате. К примеру, среднее значение в CSV-строке "1",,3.

Узел может принимать входные данные, состоящие из нескольких частей, при условии, что свойство parts установлено правильно, например, из узла Запись в файл или узла Разделить.

При выводе нескольких сообщений они будут иметь свойство parts и формировать полную последовательность сообщений.

к сведению

В шаблоне столбцов должна использоваться запятая для разделения - даже если для данных выбран другой разделитель.

Узел html

Узел html в Палитре
Узел html на Холсте

Извлекает элементы из HTML-документа, хранящегося в msg.payload, с помощью CSS-селектора.

Принимает:

  • payload строка – HTML-строка, из которой извлекать элементы.
  • select строка – если селектор не настроен на панели редактирования узла, то он может быть установлен как свойство msg.

Выход:

  • payload массив | строка – результатом может быть либо одно сообщение, в котором payload содержит массив найденных элементов, либо несколько сообщений, каждое из которых содержит найденный элемент. Если отправлено несколько сообщений, у них также будет установлен parts.

Этот узел поддерживает комбинацию селекторов CSS и jQuery.

Узел json

Узел json на Холсте
Узел json на Холсте

Выполняет преобразования между строкой в JSON формате и ее представлением в JavaScript-объекте, в любом направлении.

Принимает:

  • payload объект | строка – JavaScript объект или JSON-строка.
  • schema объект – необязательный объект JSON-схемы для проверки данных. Свойство будет удалено перед отправкой msg следующему узлу.

Выводит:

  • payload объект | строка

    • Если вход является JSON-строкой, узел пытается проанализировать ее как JavaScript объект.
    • Если вход является JavaScript объектом, узел создает JSON-строку. Строка может быть при желании отформатирована.
  • schemaError массив – если проверка JSON-схемы завершится неудачно, узлом Отлов ошибок можно получить свойство schemaError, содержащее массив ошибок.

По умолчанию узел работает с msg.payload, но его можно настроить для преобразования любого свойства сообщения.

Узел также может быть сконфигурирован для обеспечения конкретной кодировки вместо переключения между ними. Это можно использовать, например, при работе с узлом HTTP Вход, чтобы гарантировать, что данные payload всегда будут являться объектом, даже если входящий запрос неправильно установил свой тип содержимого для узла HTTP Вход, чтобы выполнить преобразование.

Если узел настроен так, чтобы свойство кодировалось как строка, и он получает строку, дальнейшие проверки этого свойства выполняться не будут. Он не будет проверять, является ли строка допустимым JSON, и не будет переформатировать ее, если выбрана опция форматирования.

Подробнее о JSON-схеме Вы можете узнать в спецификации здесь.

Узел xml

Узел xml в Палитре
Узел xml на Холсте

Выполняет преобразования между строкой в XML формате и ее представлением в JavaScript-объекте, в любом направлении.

Принимает:

  • payload объект | строка – JavaScript объект или XML-строка.
  • options объект – это необязательное свойство может использоваться для передачи любых параметров, поддерживаемых библиотекой, которая используется для преобразования в/из XML. См. документацию xml2js для получения дополнительной информации.

Выводит:

  • payload объект | строка

    • Если на входе значение строкового типа, узел пытается проанализировать его как XML и создает объект JavaScript.
    • Если на входе JavaScript объект, узел пытается построить XML-строку.

При преобразовании между XML и объектом любые XML-атрибуты по умолчанию добавляются как свойство с именем $. Любое текстовое содержимое добавляется как свойство с именем _. Эти имена свойств могут быть указаны в конфигурации узла.

Например, следующий XML:

<p class="tag">Hello World</p>

будет преобразован в:

{
"p": {
"$": {
"class": "tag"
},
"_": "Hello World"
}
}

Узел yaml

Узел yaml в Палитре
Узел yaml на Холсте

Выполняет преобразования между строкой в YAML формате и ее представлением в JavaScript-объекте, в любом направлении.

Принимает:

  • payload объект | строка – JavaScript объект или YAML-строка.

Выводит:

  • payload объект | строка

    • Если на входе YAML-строка, узел пытается проанализировать ее как JavaScript объект.
    • Если на входе JavaScript объект, узел создает YAML-строку.