06 Группа “Анализатор”. Описание узлов
Узел csv
Выполняет преобразования между строкой в CSV формате и ее представлением в JavaScript-объекте, в любом направлении.
Принимает:
payload
объект | массив | строка – JavaScript объект, массив или CSV-строка.
Выводит:
payload
объект | массив | строка
- Если на входе значение строкового типа, узел попытается проанализировать его как CSV и создает объект JavaScript из пар ключ/значение для каждой строки. Затем узел либо отправит сообщение для каждой строки или одно сообщение, содержащее массив объектов.
- Если на входе JavaScript объект, узел попробует построить CSV-строку.
- Если на входе массив простых значений, узел построит однострочную CSV-строку.
- Если на входе массив массивов или массив объектов, создается многострочная CSV-строка.
Шаблон столбцов может содержать упорядоченный список имен столбцов. При преобразовании CSV в объект имена столбцов будут использоваться в качестве имен свойств. Кроме того, имена столбцов могут быть взяты из первой строки CSV.
При преобразовании в CSV шаблон столбцов используется для определения того, какие свойства извлекать из объекта и в каком порядке.
Если шаблон пуст, то узел может использовать простой список свойств, разделенных запятыми, предоставленных в msg.columns
, чтобы определить, что извлечь. Если его нет, то все свойства объекта выводятся в том порядке, в котором они были найдены в первой строке.
Если входные данные являются массивом, то шаблон столбцов используется только для необязательного генерирования строки с заголовками столбцов.
Если выбрана опция 'разбирать числовые значения
, строковые числовые значения будут возвращаться в виде чисел. К примеру, среднее значение в CSV-строке 1,"1,5",2
.
Если выбрана опция включать пустые строковые значения
, пустые строки будут возвращениы в результате. К примеру, среднее значение в CSV-строке "1","",3
.
Если выбрана опция включить null-значения
, null
-значения будут возвращениы в результате. К примеру, среднее значение в CSV-строке "1",,3
.
Узел может принимать входные данные, состоящие из нескольких частей, при условии, что свойство parts
установлено правильно, например, из узла Запись в файл
или узла Разделить
.
При выводе нескольких сообщений они будут иметь свойство parts и формировать полную последовательность сообщений.
В шаблоне столбцов должна использоваться запятая для разделения - даже если для данных выбран другой разделитель.
Узел html
Извлекает элементы из HTML-документа, хранящегося в msg.payload
, с помощью CSS-селектора.
Принимает:
payload
строка – HTML-строка, из которой извлекать элементы.select
строка – если селектор не настроен на панели редактирования узла, то он может быть установлен как свойствоmsg
.
Выход:
payload
массив | строка – результатом может быть либо одно сообщение, в которомpayload
содержит массив найденных элементов, либо несколько сообщений, каждое из которых содержит найденный элемент. Если отправлено несколько сообщений, у них также будет установленparts
.
Этот узел поддерживает комбинацию селекторов CSS и jQuery.
Узел 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 формате и ее представлением в 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 формате и ее представлением в JavaScript-объекте, в любом направлении.
Принимает:
payload
объект | строка – JavaScript объект или YAML-строка.
Выводит:
payload
объект | строка- Если на входе YAML-строка, узел пытается проанализировать ее как JavaScript объект.
- Если на входе JavaScript объект, узел создает YAML-строку.