XML-bestanden

U kunt een XML-bestand (.xml) gebruiken als bron.

Het platform maakt records aan vanuit een willekeurige XML-structuur door alle elementen op een specifieke diepte (optioneel gefilterd per tag) te converteren naar een reeks records. Voor elk element dat wordt geconverteerd naar een records worden attributen, omsloten tags en content geconverteerd naar velden. Complexe gegevens in velden worden geconverteerd naar een JSON-weergave die zowel attributen als content bevat.

Aanmaak

Voor meer informatie over het toevoegen van een bestandsbron, zie Een bestand ophalen.

Configuratie

XML-parameters

Naam

Omschrijving

Gebruik

Parent tags

Aantal ouders om attributen van te krijgen

Wanneer de omsloten tags relevante attributen omvatten, gebruik dan deze optie om ze aan de records toe te voegen.

Vermeld het aantal parent tag om attributen van te krijgen (bijvoorbeeld 2).

Naam van de tags die moeten worden geëxtraheerd

Wanneer irrelevante tags dezelfde diepte hebben als de geëxtraheerde elementen, gebruik dan deze optie om enkel relevante tags te filteren.

Vermeld de tag die geëxtraheerd moet worden (bijvoorbeeld item) in het vak Naam van de tags die moeten worden geëxtraheerd. Wanneer u het vak leeg laat zullen alle tags met de gespecificeerde diepte worden geconverteerd naar records.

Diepte van de tag

Diepte van de tags die moeten worden geconverteerd naar records

Vermeld de diepte van de herhaalde tag in het vak Diepte van de tag (bijvoorbeeld 3).

Extraheer bestandsnaam

Naam

Omschrijving

Gebruik

Extraheer bestandsnaam

Maakt een nieuwe kolom aan met de naam van de bronbestand.

Standaard is deze optie niet aangevinkt. Vink deze optie aan om de bestandsnaam te extraheren in een toegevoegde kolom.

Technische specificaties

Aanmaak van een veld

Het beleid voor het aanmaken van velden vanuit een item staat gedefinieerd zoals weergegeven in de volgende voorbeelden.

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>

attribuut

other_attribute indicator

land

decimaal

content

waarde van een attribuut

waarde van een andere attibuut

bbp per hoofd van de bevolking

Andean Region 0  

tag van 2de data

       

Enkel tekst

JSON-weergave

Complexe data in velden wordt geconverteerd naar een JSON zoals weergegeven in het volgende voorbeeld.

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"
        }
    }
}

Voorbeelden

Voorbeeld 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>

In dit voorbeeld:

  • Diepte van de tag is ingesteld op 2 omdat wb:data op het tweede niveau staat van de XML-boom (wb:rows/wb:data).

  • U hoeft tags niet uit te filteren omdat alle elementen op deze diepte records zijn.

De resulterende dataset ziet er als volgt uit:

wb:indicator wb:country wb:date wb:value wb:decimal

{"#text": "bbp per hoofd van de bevolking (2005 USD)", "@id": "6.0.GDPpc"}

{"#text": "Andean Region", "@id": "L5"} 2005 8154.72913271721 0

{"#text": "bbp per hoofd van de bevolking (2005 USD)", "@id": "6.0.GDPpc"}

{"#text": "Bolivia", "@id": "BO"} 2009 5152.46337890625 0

{"#text": "bbp per hoofd van de bevolking (2005 USD)", "@id": "6.0.GDPpc"}

{"#text": "Bolivia", "@id": "BO"} 2006 4715.9892578125 0

Voorbeeld 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>

In dit voorbeeld is de XML-structuur complex. Daardoor kan de automatische detectie van parameters de juiste diepte niet raden. U moet de bron manueel configureren:

  • Diepte van de tag moet ingesteld zijn op 3 omdat item op het derde niveau van de XML-structuur staat (shoppingList/basket/item).

  • Naam van de tags die moeten worden geëxtraheerd moet ingesteld staan op item omdat itemCount en totalQuantity ook op het derde niveau staan maar niet relevant zijn.

De resulterende dataset ziet er als volgt uit:

naam

aantal

aardappe

5

banaan

4

tomaat

10