Задача и предварительные условия
Выберите повторяющиеся элементы XML, используйте атрибут id как код и запишите каталог в Excel.
В примере используются демонстрационные данные и настройки. Проверьте ожидаемый результат в своей среде до подключения рабочих получателей. Идентификаторы demo_* условны: выберите собственные учебные подключения или источники в редакторе. JSON ниже показывает структуру блоков и связей, а не готовый архив потока для переноса.
Учебные входные данные
<catalog><item id="T01"><name>Tea</name><unit>pack</unit></item><item id="C01"><name>Coffee</name><unit>bag</unit></item></catalog>Блоки, связи и точные настройки
Схема примера 04: блоков — 3, связей — 2. Идентификаторы узлов и порты настроенной схемы сохранены.
Добавьте перечисленные блоки в конструкторе, откройте свойства каждого и задайте эти значения. Имена demo_* обозначают учебные источники и подключения.
| Блок | Настройка |
|---|---|
| 1 Файл src |
|
| 2 Сопоставление столбцов map |
|
| 3 Экспорт данных out |
|
Связи портов
- src
out→ mapin - map
out→ outin
Полная конфигурация схемы в JSON
{
"version": 3,
"nodes": [
{
"id": "src",
"type": "file",
"label": "src",
"config": {
"role": "source",
"source_id": "demo_catalog_xml",
"options": {
"xml_path": "./item",
"range": "A1:C3",
"header": true
}
}
},
{
"id": "map",
"type": "mapping",
"label": "map",
"config": {
"mode": "columns",
"columns": [
{
"name": "ProductCode",
"value": "@id"
},
{
"name": "ProductName",
"value": "name"
},
{
"name": "Unit",
"value": "unit"
}
]
}
},
{
"id": "out",
"type": "export",
"label": "out",
"config": {
"format": "xlsx",
"filename": "catalog",
"destination": "download",
"delimiter": ";",
"timezone": "Europe/Kyiv"
}
}
],
"edges": [
{
"source": "src",
"target": "map",
"source_port": "out",
"target_port": "in"
},
{
"source": "map",
"target": "out",
"source_port": "out",
"target_port": "in"
}
]
}Ожидаемый результат
| ProductCode | ProductName | Unit |
|---|---|---|
| T01 | Tea | pack |
| C01 | Coffee | bag |
Запуск и проверка
- Загрузите XML как catalog.xml. Выберите путь ./item от корня catalog.
- Проверьте доступные поля источника: @id, name и unit.
- Запустите поток; catalog.xlsx должен содержать 2 товара и 3 столбца.
Частые ошибки
- Атрибут id доступен как @id, а не id.
- Путь ./catalog/item избыточен, если catalog уже является корнем документа.
- Повторяющиеся вложенные теги могут давать сложные значения; в примере намеренно используются простые элементы.