Fichiers XML

Modifié

Vous pouvez utiliser un fichier XML (.xml) comme source.

Cette plateforme crée des enregistrements à partir d'une structure XML arbitraire en convertissant tous les éléments à une profondeur spécifique (éventuellement filtrés par tag) en un ensemble d'enregistrements. Pour chaque élément converti en enregistrement, les attributs, les tags encadrés et le contenu sont convertis en champs. Les données complexes présentes dans les champs sont converties en une représentation JSON contenant à la fois des attributs et du contenu.

Création

Pour plus d'informations sur l'ajout d'une source de fichier, voir Récupération d'un fichier .

Configuration

Nom

Description

Utilisation

Tags parents

Nombre de parents dont les attributs doivent être récupérés

Si les tags encadrants contiennent des attributs pertinents, utilisez cette option pour les ajouter aux enregistrements.

Entrez le nombre de tags parents à partir desquels obtenir les attributs (par exemple, 2 ).

Nom des tags à extraire

Si des tags non pertinents sont à la même profondeur que les éléments extraits, utilisez cette option pour filtrer uniquement les tags pertinents.

Entrez le tag à extraire (par exemple, item ) dans la case Nom des tags à extraire . Si vous laissez le champ vide, tous les tags à la profondeur spécifiée seront converties en enregistrements.

Profondeur de tag

Profondeur des tags qui doivent être convertis en enregistrements

Entrez la profondeur du tag répété dans la zone Profondeur de tag (par exemple, 3 ).

Nom

Description

Utilisation

Extraire le nom du fichier

Crée une nouvelle colonne avec le nom du fichier source.

Par défaut, cette option est désactivée. Activez cette option pour extraire le nom du fichier dans une colonne supplémentaire.

Spécifications techniques

Création de champ

La stratégie de création de champs à partir d'un élément est définie comme indiqué dans les exemples suivants.

1
 2
 3
 4
 5
 6
 7
 8
<rows>
 <data attribute="attribute value" other_attribute="other attribute value">
 <indicator>GDP per capita</indicator>
 <country>Andean Region</country>
 <decimal>0</decimal>
 </data>
 <data attribute="2nd data tag">Text only</data>
 </rows>

attribut

autre_attribut

indicateur

pays

décimal

contenu

valeur d'attribut

autre valeur d'attribut

PIB par habitant

Région des Andes

0

2ème tag de données

Texte uniquement

Représentation JSON

Les données complexes à l'intérieur des champs sont converties en JSON, comme illustré dans l'exemple suivant.

1
 2
 3
 4
 5
 6
 7
 8
 9
<mydocument has="an attribute">
 <and>
 <many>elements</many>
 <many>more elements</many>
 </and>
 <plus a="complex">
 element as well
 </plus>
 </mydocument>
{
 "mydocument": {
 "@has": "an attribute",
 "and": {
 "many": [
 "elements",
 "more elements"
 ]
 },
 "plus": {
 "@a": "complex",
 "#text": "element as well"
 }
 }
 }

Exemples

Exemple 1

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
<?xml version="1.0" encoding="utf-8"?>
 <wb:rows xmlns:wb="http://www.worldbank.org">
 <wb:data>
 <wb:indicator id="6.0.GDPpc">GDP per capita (2005 USD)</wb:indicator>
 <wb:country id="L5">Andean Region</wb:country>
 <wb:date>2012</wb:date>
 <wb:value>10561.668936515</wb:value>
 <wb:decimal>0</wb:decimal>
 </wb:data>
 <wb:data>
 <wb:indicator id="6.0.GDPpc">GDP per capita (2005 USD)</wb:indicator>
 <wb:country id="L5">Andean Region</wb:country>
 <wb:date>2011</wb:date>
 <wb:value>10215.3319157514</wb:value>
 <wb:decimal>0</wb:decimal>
 </wb:data>
 <wb:data>
 <wb:indicator id="6.0.GDPpc">GDP per capita (2005 USD)</wb:indicator>
 <wb:country id="L5">Andean Region</wb:country>
 <wb:date>2010</wb:date>
 <wb:value>9711.85739310366</wb:value>
 <wb:decimal>0</wb:decimal>
 </wb:data>
 </wb:rows>

Dans cet exemple :

  • La profondeur de tag est définie sur 2 car wb:data se trouve au deuxième niveau de l'arborescence XML ( wb:rows/wb:data ).

  • Vous n'avez pas besoin de filtrer les tags car tous les éléments à cette profondeur sont des enregistrements.

Le jeu de données résultant ressemble à ceci :

wb : indicateur

wb:pays

wb:date

wb:valeur

wb : décimal

{"#text": "PIB par habitant (USD 2005)", "@id": "6.0.GDPpc"}

{"#text": "Région andine", "@id": "L5"}

2005

8154.72913271721

0

{"#text": "PIB par habitant (USD 2005)", "@id": "6.0.GDPpc"}

{"#text": "Bolivie", "@id": "BO"}

2009

5152.46337890625

0

{"#text": "PIB par habitant (USD 2005)", "@id": "6.0.GDPpc"}

{"#text": "Bolivie", "@id": "BO"}

2006

4715.9892578125

0

Exemple 2

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
<?xml version="1.0" encoding="UTF-8"?>
 <shoppingList>
 <id>abcdef123</id>
 <description>A shopping list</description>
 <basket>
 <itemCount>3</itemCount>
 <totalQuantity>19</totalQuantity>
 <item>
 <name>tomato</name>
 <quantity>10</quantity>
 </item>
 <item>
 <name>potato</name>
 <quantity>5</quantity>
 </item>
 <item>
 <name>banana</name>
 <quantity>4</quantity>
 </item>
 </basket>
 </shoppingList>

Dans cet exemple, l'arborescence XML est complexe. Par conséquent, la détection automatique des paramètres ne peut pas déterminer la bonne profondeur. Vous devez configurer la source manuellement :

  • La profondeur de tag doit être définie sur 3 car le nœud de l' item se trouve au troisième niveau de l'arborescence XML ( shoppingList/basket/item ).

  • Le nom des tags à extraire doit être défini sur item car itemCount et totalQuantity sont également au troisième niveau mais ne sont pas pertinents.

Le jeu de données résultant ressemble à ceci :

Nom

quantité

pomme de terre

5

banane

4

tomate

10