Objectif et prérequis

Sélectionnez les éléments XML répétés, utilisez l’attribut id comme code et écrivez le catalogue dans Excel.

Cet exemple utilise des données et paramètres de démonstration. Validez le résultat attendu dans votre propre environnement avant de connecter des destinations de production. Les identifiants demo_* sont illustratifs : sélectionnez vos propres connexions ou sources pédagogiques dans l’éditeur. Le JSON ci-dessous présente la structure des blocs et connexions, pas une archive de flux prête à transférer.

Données d’entrée pédagogiques

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

Blocs, connexions et paramètres exacts

Schéma explicatifAgrandir ↗04. XML : du catalogue produit à Excel. Topologie de l’exemple 04 : 3 blocs, 2 connexions. Les identifiants de nœuds et les ports du graphe configuré sont conservés.
Schéma du flux 04

Topologie de l’exemple 04 : 3 blocs, 2 connexions. Les identifiants de nœuds et les ports du graphe configuré sont conservés.

Ajoutez les blocs listés dans le concepteur, ouvrez les propriétés de chacun et définissez ces valeurs. Les noms demo_* désignent les sources et connexions pédagogiques.

BlocParamètre
1
Fichier
src
  • Rôle: source
  • Source: demo_catalog_xml
  • Paramètres de lecture:
    • Chemin des enregistrements XML: ./item
    • Plage: A1:C3
    • La première ligne contient les en-têtes: так
2
Mappage des colonnes
map
  • Mode: columns
  • Colonnes:
      • Nom: ProductCode
      • Valeur: @id
      • Nom: ProductName
      • Valeur: name
      • Nom: Unit
      • Valeur: unit
3
Exportation de données
out
  • Format: xlsx
  • Nom du fichier: catalog
  • Rôle: download
  • Séparateur: ;
  • Fuseau horaire: Europe/Kyiv

Connexions des ports

  • src out → map in
  • map out → out in
Configuration complète du graphe en 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"
    }
  ]
}

Résultat attendu

ProductCodeProductNameUnit
T01Teapack
C01Coffeebag

Exécuter et vérifier

  1. Chargez le XML sous catalog.xml. Sélectionnez le chemin ./item depuis la racine catalog.
  2. Vérifiez les champs disponibles de la source : @id, name et unit.
  3. Exécutez le flux ; catalog.xlsx doit contenir 2 produits et 3 colonnes.

Erreurs courantes

  • L’attribut id est disponible sous @id, et non id.
  • Le chemin ./catalog/item est redondant si catalog est déjà la racine du document.
  • Des balises imbriquées répétées peuvent produire des valeurs complexes ; cet exemple utilise volontairement des éléments simples.