Wie kann ich eine CSV-Datei in XML konvertieren?
Gibt es eine Software für Ubuntu?
conversion
xml
csv
Vitor Mazuco
quelle
quelle
Antworten:
Auf der Community-Website zum Konvertieren befindet sich ein Link zu einem Befehlszeilentool namens csv2xml . Da es nicht gewartet wird, möchten Sie möglicherweise eine andere Option auswählen.
Es wird auch ein Java-Tool namens csv2xml (Warnung: Website ist auf Deutsch) und ein Befehlszeilen-Tool namens ff-extractor erwähnt .
Der Link enthält auch Verweise auf Python, Perl, PHP, XSLT. Dies bedeutet jedoch, dass Sie den Konverter selbst codieren müssen.
quelle
Wenn Sie das Format der
csv
Datei und die Struktur kennen, die Sie in derxml
Datei benötigen , ist es ziemlich einfach, ein Skript zu erstellen, das die Konvertierung handhaben kann.Nimm die Datei
simple.csv
:Sie können die folgende
xml
Datei erstellen :Mit folgendem Skript:
Selbst wenn Sie noch nie zuvor codiert haben, sollte dies meiner Meinung nach einfach zu verwenden und zu ändern sein. Die Datei wird zeilenweise in der
while
Schleife gelesen .IFS
ist der interne Feldspezifizierer. DasIFS=$','
erklärt, dass der Wert des Feldtrennzeichens ein Komma ist. Dies ist Standard für eine CSV-Datei, kann jedoch nach Bedarf geändert werden, um dem Format der Eingabedatei zu entsprechen.Das
-r
Argument für denread
Befehl weist ihn an, Backslashes in Ihrer Datei als Teil Ihrer Daten und nicht als Escapezeichen für ein folgendes Sonderzeichen zu behandeln.Das
-a arry
Argument platziert jede Spalte Ihrer Datei in einem Array (mit dem Namenarry
). Die Spalten in diesem Beispiel sind Name, Alter, Land. Mit anderen Worten die Werte zwischen den Kommas. Jede Spalte in der Zeile wird also in einem Array gespeichert.Dann wird der benötigte Text für
xml
nur um die Werte gewickelt und diexml
Zeile an die Ausgabedatei mit angehängtecho
.quelle
while IFS=$',' read -r -a arry
, ist sie für eine andere nützlich. Vielen Dank."Somename, Jack"
anstelle vonJack
in der Eingabedatei?Eine ziemlich benutzerfreundliche (dh für Leute wie mich einfach) Lösung für die Herausforderung der Konvertierung von CSV in XML besteht darin, einen netten plattformübergreifenden XML-Editor zu verwenden, in den diese Funktion integriert ist. (Ich habe es sowohl unter Ubuntu als auch unter Mac OSX 10.10.5 verwendet; es hat auch eine ausführbare Windows-Datei.)
XMLSpear
Wie bereits erwähnt, handelt es sich um einen XML-Editor, der jedoch im Hauptmenü den Import von CSV-zu-XML (und Excel-zu-XML) enthält:
Es konvertierte eine 31-MB-CSV-Datei für mich (ein Speicherauszug aus einer Bibliotheksdatenbank mit 20.000 Einträgen) in ungefähr 15 Sekunden und gab mir eine wohlgeformte XML-Datei zum Speichern und Bearbeiten.
Als Redakteur hat es viele andere willkommene Funktionen (siehe Link oben). Ich kann keine Lizenz dafür erwähnen, aber diese ist in der "README" enthalten:
Die Readme-Datei enthält auch hilfreiche Informationen zum Inhalt einer .desktop-Datei.
Macht den Job gut für mich unter Ubuntu 18.04 LTS (Gnome).
quelle
Ich bin ein großer Fan
BaseX
davon scheint eine Importfähigkeit zu haben:http://docs.basex.org/wiki/CSV_Module
Könnte darauf hinweisen, dass es anscheinend einfacher ist, eine Webanwendung zu verwenden:
https://webapps.stackexchange.com/q/123959/24327
Dies entspricht einem Plugin oder einer Erweiterung des Browsers, der mit Google Sheets funktioniert.
Ich fühle deinen Schmerz, weil es ein scheinbar einfaches Dienstprogramm ist, das über apt verfügbar sein sollte.
quelle
Ich würde vorschlagen, dass Sie oder jemand Codes in Python schreiben. Python ist leicht zu erlernen und löst Ihr Problem leicht. Es verfügt sowohl über CSV-Module als auch über XML-Module . Mein Vorschlag berücksichtigt, dass Sie möglicherweise Ihre eigenen Namen für XML-Elemente oder andere komplexe Anforderungen benötigen (z. B. die Konvertierung der letzten CSV-Spalte in das Attribut der vorletzten Spalte).
Es gibt unzählige Online-Tutorials zu Python.
quelle