X4 Produktdokumentation

XML to CSV Converter

Dieser Adapter konvertiert eine XML-Datei in eine CSV-Datei,


Eigenschaften (Properties)

Operation

Bestimmt, welche Operation der Funktions-Adapter durchführt

Mögliche Werte:

  • Convert: Konvertiert die XML-Datei in eine CSV-Datei.

Parameter

Adapter

Hauptklasse des Adapters (nicht verändern!)

Mögliche Werte: de.softproject.integration.adapter.xml2csv.XML2CSVAdapter: Hauptklasse (Standard)

headerInOutput

Erforderlich. Legt fest, ob es in der zu erzeugenden CSV-Datei eine Kopfzeile gibt.

Mögliche Werte: true (Standard) / false

delimiter

Erforderlich. Legt das Trennzeichen der zu erzeugenden CSV-Datei fest.

Mögliche Werte: Beliebiges Trennzeichen, z. B. ; , , (Standard) oder \t (Tab als Trennzeichen)

lineEnd

Erforderlich. Legt das Zeichen für das Zeilenende in der zu erzeugenden CSV-Datei fest.

Mögliche Werte: Zeichen für das Zeilenende, z. B. \n (Standard Unix), \r\n(Standard MS Windows)

quotechar

Legt das Anführungszeichen für die Elemente innerhalb der zu erzeugenden CSV-Datei fest.

Mögliche Werte:

  • Beliebiges Anführungszeichen, z. B. " 

  • Standard: Nicht gesetzt

escapechar

Legt das Zeichen fest, mit dem bestimmte Zeichen maskiert werden, die ansonsten als Steuerzeichen erkannt würden.

Mögliche Werte:

  • beliebiges Zeichen, z. B. "

  • Standard: Nicht gesetzt

encoding

Legt die Zeichenkodierung für die Konvertierung fest.

Mögliche Werte:

  • Angabe einer Zeichenkodierung, z. B. UTF-8 

  • Standard: UTF-8 

Statuswerte

1

Die Operation wurde erfolgreich ausgeführt.

-1

Die Operation konnte nicht ausgeführt werden.

Input

Der Adapter erwartet die folgende Input-Struktur:

XML
<?xml version="1.0" encoding="UTF-8"?>
<Csv>
    <Header>
        <Column name="columnName1" />
        <Column name="columnName2" />
        <Column ...
    </Header>
    <Records>
        <Record>
            <Column name="columnName1">value1</Column>
            <Column name="columnName2">value2</Column>
            <Column ...
        </Record>
        <Record>
            <Column name="columnName1">value1</Column>
            <Column name="columnName2">value2</Column>
            <Column ...
        </Record>
        <Record ...
    </Records>
</Csv>


Wenn der Parameter headerInOutput auf true gesetzt wurde, dann wird in der Ausgabe-CSV-Datei eine Kopfzeile erzeugt. Die Spaltennamen werden über das Attribut name  innerhalb des Header/Column-Elements festgelegt. Es werden so viele Spalten erzeugt, wie es name-Attribute gibt.

Wenn der Parameter headerInOutput auf false gesetzt wurde, dann wird in der Ausgabe-CSV-Datei keine Kopfzeile erzeugt. Es werden so viele Spalten erzeugt, wie maximal als Column-Elemente innerhalb eines Record-Elements vorkommen.

Jeder Eintrag muss in einem Record-Element stehen. Wenn eine Kopfzeile definiert ist, dann werden die Werte der Spalte mit dem entsprechenden name zugeordnet.

Output

Der Adapter gibt ein CSV-Dokument in der Struktur aus, die über das Eingabedokument definiert wurde.

Beispiel

XML
<?xml version="1.0" encoding="UTF-8"?>
<Csv>
    <Header>
        <Column name="Monday" />
        <Column name="Tuesday" />
        <Column name="Wednesday" />
    </Header>
    <Records>
        <Record>
            <Column name="Monday">First day</Column>
            <Column name="Tuesday">Second day</Column>
        </Record>
        <Record>
            <Column name="Monday">First day</Column>
            <Column name="Tuesday">Second day</Column>
            <Column name="Wednesday">Third day</Column>
        </Record>
    </Records>
</Csv>

Die Adapter-Parameter wurden wie folgt gesetzt:

  • headerInOutputtrue

  • delimiter,

  • encodingUTF-8

Obiger Input führt zu folgendem Output:

XML
Monday,Tuesday,Wednesday
First day,Second day,
First day,Second day,Third day