Flexi2XML-Konverter

Flexi2XML-Konvertierungstool zum Konvertieren von XML-Formaten

Ota Rádl avatar
Verfasst von Ota Rádl
Vor über einer Woche aktualisiert

Flexi2XML kann auch als Konvertierungswerkzeug verwendet werden, um Daten von/nach ABRA Flexi zu konvertieren. Es kann eine Datei öffnen, sie in XML konvertieren, Konvertierungswerkzeuge darauf anwenden und wieder XML schreiben. Es kann dies in beide Richtungen tun.

Komplexere Konvertierungen von XLS nach Flexi

Flexi verfügt über grundlegende Funktionen zum Importieren von XLS (Excel). Für komplexere Fälle müssen Sie das Tool Flexi2XML verwenden.

Konvertierung aus Excel

Das Flexi2XML-Tool kann bisher direkt XLS-Dateien laden (und damit die REST-API). So soll ein XLS aussehen:

Produkt

Teilnehmer

Preis

8593026341407

FLEXI

1000.0

8593026341407

ARIT

900.0

8593026341407

VFH

1050.0

8593026341407

ABRA

1100.0

Konvertierung von XLS nach XML

Für die weitere Verarbeitung müssen Sie XML wie folgt erstellen (unter Linux/Mac OS X müssen Sie ";" anstelle von ; verwenden):

flexibee2xml --from-xls file.xls --evidence subscriber --to-xml file.xml

Das Ergebnis ist XML:

<?xml version="1.0"?>

Wenn die Spaltennamen in der XLS-Datei direkt mit den Attributnamen in FlexiXML übereinstimmen würden, wären wir fertig (genau so funktionieren CSV und XLS in der FlexiBee REST API). Nun müssen wir ein Konvertierungsskript vorbereiten, das das XML modifiziert. Dazu verwenden wir den Standard XSL Transform (XSLT).

XML-zu-XML-Konvertierung (XSLT)

XSL-Transformationen (XSLT) sind ein standardisiertes Werkzeug. Allerdings gibt es manchmal Unterschiede in den Implementierungen, daher stellen wir das Tool Flexi2XML zur Verfügung, das auf demselben Kern wie Flexi aufbaut. Dies gewährleistet maximale Kompatibilität.

Lassen Sie uns ein Konvertierungsskript vorbereiten (subscriber-in.xslt):

<?xml version="1.0"?>

Es gibt viele Einführungen in XSLT(1, 2, ...).

In XSLT können Sie iterieren( ), konditionieren ( ), Inhalte indizieren (:key/> ). Dies ist jedoch keine klassische iterative Programmierung. Wir wissen, dass XSLT seine Reserven hat, aber es scheint für diesen Zweck ideal zu sein.

Dann verwenden wir den Befehl:

flexibee2xml --from-xml file.xml --run-xslt subscriber-in.xslt --to-xml result.xml

Oder ein Befehl mit einem Zwischenschritt zum Überspringen:

flexibee2xml --from-xls file.xls --evidence subscriber --run-xslt subscriber-in.xslt --to-xml result.xml

Das Ergebnis kann dann über Flexi entweder direkt oder mittels Flexi2XML-Stapelverarbeitung importiert werden.

Einige Anmerkungen zum Schluss

Die resultierende XSLT-Transformation kann als User Transformation gespeichert oder direkt in Flexi integriert werden (Sie müssen sie uns per E-Mail zusenden). Auf diese Weise kann Flexi gelehrt werden, auf einfache Weise XML von anderen Systemen zu erzeugen oder zu konsumieren. Die Verwendung einer Benutzer- (oder integrierten) XSLT-Transformation ist in der REST-API-Dokumentation beschrieben.

Es können mehrere Dateien auf einmal verarbeitet werden - wir verwenden dies, wenn wir eine CSV/XLS mit Rechnungsköpfen und eine andere mit Einzelposten haben.

Flexi2XML kann verwendet werden, um ein großes XML in viele kleine zu zerhacken und diese dann sequentiell zu laden.

Hat dies Ihre Frage beantwortet?