CSVファイルをXMLに変換するにはどうすればよいですか?
Ubuntu用のソフトウェアはありますか?
CSVファイルをXMLに変換するにはどうすればよいですか?
Ubuntu用のソフトウェアはありますか?
回答:
上のコミュニティサイトが変換に呼ばれるコマンドラインツールへのリンクですcsv2xml。メンテナンスされていないため、別のオプションを選択することをお勧めします。
csv2xml(警告:ウェブサイトはドイツ語です)と呼ばれるjava ツールとff-extractorと呼ばれるコマンドラインツールについても言及されています。
リンクにはPython、Perl、PHP、XSLTへの参照もありますが、これはコンバーターを自分でコーディングする必要があることを意味します。
csv
ファイルの形式とファイルに必要な構造がわかっている場合xml
、変換を処理できるスクリプトを作成するのはかなり簡単です。
ファイルを取るsimple.csv
:
Jack,35,United States
Jill,22,United Kingdom
次のxml
ファイルを作成できます。
<?xml version="1.0"?>
<Customers>
<Customer>
<Name>Jack</Name>
<Age>35</Age>
<Country>United States</Country>
</Customer>
<Customer>
<Name>Jill</Name>
<Age>22</Age>
<Country>United Kingdom</Country>
</Customer>
</Customers>
次のスクリプトで:
#!/bin/bash
file_in="simple.csv"
file_out="simple.xml"
echo '<?xml version="1.0"?>' > $file_out
echo '<Customers>' >> $file_out
while IFS=$',' read -r -a arry
do
echo ' <Customer>' >> $file_out
echo ' <Name>'${arry[0]}'</Name>' >> $file_out
echo ' <Age>'${arry[1]}'</Age>' >> $file_out
echo ' <Country>'${arry[2]}'</Country>' >> $file_out
echo ' </Customer>' >> $file_out
done < $file_in
echo '</Customers>' >> $file_out
これまでコーディングしたことがない場合でも、これは簡単に使用および変更できるはずです。ファイルはwhile
ループ内で1行ずつ読み込まれます。
IFS
内部フィールド指定子です。IFS=$','
フィールド区切りの値がカンマであることを宣言します。これはCSVファイルの標準ですが、入力ファイルの形式に合わせて必要に応じて変更できます。
コマンドの-r
引数read
は、ファイル内のバックスラッシュを次の特殊文字のエスケープとしてではなく、データの一部として扱うように指示します。
-a arry
引数は(という名前の配列にあなたのファイルの各列を配置しますarry
)。この例の列は、名前、年齢、国です。つまり、コンマの間の値です。したがって、行の各列は配列に格納されます。
次に、必要なテキストxml
が値の周りにラップされ、そのxml
行がで出力ファイルに追加されますecho
。
while IFS=$',' read -r -a arry
で使用されているオプションを説明する場合、それは別の人にとって有用です。ありがとう。
"Somename, Jack"
の代わりにJack
、入力ファイル内の?
CSVからXMLへの変換の課題に対するかなりユーザーフレンドリーな(つまり、私のような多くの人にとっては簡単な)ソリューションは、この機能が組み込まれた優れたクロスプラットフォーム XMLエディターを使用することです。(私はUbuntuとMac OSX 10.10.5の両方で使用しました。Windows実行可能ファイルも持っています。)
前述のように、これはXMLエディターですが、メインメニューにCSVからXML(およびExcelからXML)の「インポート」が含まれています。
31MbのCSVファイル(20,000エントリのライブラリデータベースからのダンプ)を約15秒で変換し、保存および操作するための整形式のXMLファイルを提供しました。
エディターとして、他にも多くのウェルカム機能があります(詳細は上記のリンクに記載されています)。そのライセンスについての言及はありませんが、これは「README」に含まれています。
XMLSpearは個人使用のための無料ソフトウェアです。
フィードバックをxmlspear@donkeydevelopment.comまたはフォーラムに送信してくださいhttp://donkeydevelopment.com/forums
。商用利用はdonkeydevelopmentの承認が必要です。
「ライセンス要求」という件名の電子メールをxmlspear@donkeydevelopment.comに送信してください。
readmeには、.desktopファイルのコンテンツも含まれています。
Ubuntu 18.04 LTS(Gnome)のもとでうまく機能します。
私はBaseX
インポート機能を持っていると思われるその大ファンです:
http://docs.basex.org/wiki/CSV_Module
一見すると、Webアプリケーションを使用する方が簡単だということを指摘するかもしれません。
https://webapps.stackexchange.com/q/123959/24327
これは、Googleシートで動作するブラウザのプラグインまたは拡張機能に相当します。
一見シンプルなユーティリティなので、aptから利用できるはずです。