XML-Konnektor

Der XML-Konnektor wird für XML-Dateien (.xml) verwendet.

Dieser Konnektor erzeugt Einträge aus einer beliebigen XML-Struktur, indem er alle Elemente bei einer bestimmten Tiefe (optional mit einem Tag gefiltert) zu einem Satz von Einträgen umwandelt. Für jedes Element, das in einen Eintrag umgewandelt wird, werden die beiden Attribute, die eingeschlossenen Tags und der Inhalt, in Felder konvertiert. Komplexe Daten innerhalb der Felder werden in eine JSON-Darstellung konvertiert, die beide Attribute und den Inhalt beinhaltet.

Der XML-Konnektor kann auch RDF-Dateien (.rdf) lesen.

Konfiguration

Name

Beschreibung

Verwendung

Tiefe der extrahierten Elemente

Tiefe der Tags, die in Einträge umgewandelt werden müssen.

Geben Sie die Tiefe des wiederholten Tags in der Textbox an (z.B. 3).

Dateinamen extrahieren

Es wird eine neue Spalte mit dem Namen der Quelldatei erstellt.

Standardmäßig ist das Kontrollkästchen nicht markiert. Markieren Sie das Kontrollkästchen, um den Dateinamen in einer hinzugefügten Spalte zu extrahieren.

Anzahl der übergeordneten Elemente, von denen Attribute abgerufen werden können

Wenn die einschließenden Tags relevante Attribute enthalten, verwenden Sie diese Option, um sie den Einträgen hinzuzufügen.

Geben Sie die Anzahl der übergeordneten Tags an, von denen Attribute abgerufen werden sollen (z.B. 2).

Tag der extrahierten Elemente

Befinden sich irrelevante Tags bei derselben Tiefe wie die extrahierten Elemente, können Sie diese Option nutzen, um nur relevante Tags zu filtern.

Geben Sie das zu extrahierende Tag an (z.B. Element). Wird das Feld leer gelassen, werden alle Tags in der angegebenen Tiefe in Einträge umgewandelt.

Technische Daten

Felderstellung

Die Richtlinie zum Erstellen von Feldern aus einem Element ist wie im folgenden Beispiel definiert.

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

anderes_Attribut

Indikator

Land

dezimal

Inhalt

Attributwert

anderer Attributwert

Pro-Kopf-BIP

Andenregion

0  
2nd data tag        

Nur Text

JSON-Darstellung

Komplexe Daten innerhalb der Felder werden in eine JSON-Darstellung konvertiert, wie im unteren Beispiel dargestellt.

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

Beispiele

Beispiel 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 diesem Beispiel:

  • Tiefe=2 denn``wb:data`` ist der 2. Tag im Pfad (wb:rows/wb:data)

  • Eine Tag-Filterung ist nicht notwendig, da alle Elemente in dieser Tiefe Einträge sind

Resultierender Datensatz:

wb:Indikator

wb:Land

wb:Datum

wb:Wert

wb:dezimal

{"#text": "Pro-Kopf-BIP (2005 USD)", "@id": "6.0.GDPpc"}

{"#text": "Andenregion", "@id": "L5"}

2005 8154.72913271721 0

{"#text": "Pro-Kopf-BIP (2005 USD)", "@id": "6.0.GDPpc"}

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

2009 5152.46337890625 0

{"#text": "Pro-Kopf-BIP (2005 USD)", "@id": "6.0.GDPpc"}

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

2006 4715.9892578125 0

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

Hinweis: Die XML-Struktur dieses Dokuments ist komplex, die automatische Parametererkennung also nicht in der Lage ist, die richtige Tiefe zu erkennen. Der Extraktor muss manuell konfiguriert werden.

In diesem Beispiel:

  • Tiefe=3 denn item ist der 3. Tag im Pfad (shoppingList/basket/item)

  • Eine Tag-Filterung bei item ist notwendig, weil itemCount und totalQuantity sich ebenfalls bei Tiefe=3 befinden, jedoch nicht relevant sind

Resultierender Datensatz:

Name

Menge

Kartoffel

5

Banane

4

Tomate

10