Завдання та передумови

Вибрати повторювані елементи XML, використати атрибут id як код і записати каталог в Excel.

Приклад містить навчальні дані та налаштування. Виберіть власні тестові джерела й підключення замість ідентифікаторів demo_*, відтворіть очікуваний результат і лише потім використовуйте робочі об’єкти.

Навчальні вхідні дані

<catalog><item id="T01"><name>Tea</name><unit>pack</unit></item><item id="C01"><name>Coffee</name><unit>bag</unit></item></catalog>

Блоки, зв’язки й точні налаштування

Пояснювальна схемаЗбільшити ↗04. XML: каталог товарів до Excel. Топологія прикладу 04: 3 блоки, 2 зв’язки. Збережено ідентифікатори вузлів і порти налаштованого графа.
Схема потоку 04

Топологія прикладу 04: 3 блоки, 2 зв’язки. Збережено ідентифікатори вузлів і порти налаштованого графа.

Додайте наведені блоки в конструктор, відкрийте властивості кожного й установіть такі значення. Назви demo_* позначають навчальні джерела та підключення.

БлокНалаштування
1
Файл
src
  • Роль: source
  • Джерело: demo_catalog_xml
  • Параметри читання:
    • Шлях до записів XML: ./item
    • Діапазон: A1:C3
    • Перший рядок — заголовок: так
2
Мапінг колонок
map
  • Режим: columns
  • Колонки:
      • Назва: ProductCode
      • Значення: @id
      • Назва: ProductName
      • Значення: name
      • Назва: Unit
      • Значення: unit
3
Вивантаження даних
out
  • Формат: xlsx
  • Ім’я файлу: catalog
  • Призначення: download
  • Роздільник: ;
  • Часовий пояс: Europe/Kyiv

Зв’язки портів

  • src out → map in
  • map out → out in
Повна конфігурація графа 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"
    }
  ]
}

Очікуваний результат

ProductCodeProductNameUnit
T01Teapack
C01Coffeebag

Запуск і перевірка

  1. Завантажте XML як catalog.xml. Виберіть шлях ./item від кореня catalog.
  2. Перевірте доступні поля в джерелі: @id, name, unit.
  3. Виконайте потік; у catalog.xlsx мають бути 2 товари й 3 колонки.

Типові помилки

  • Атрибут id доступний як @id, а не id.
  • Шлях ./catalog/item зайвий, якщо catalog уже є коренем документа.
  • Повторювані вкладені теги можуть утворювати складні значення; цей приклад свідомо використовує прості елементи.