UltKit

CSVをXMLに変換

CSVファイルの各行をXML要素で囲み、マークアップしか読み込めないプログラムでもインポートできるようにします。ヘッダー行がタグ名になり、区切り文字は自動で判定され、XMLを壊す文字はエスケープされます。

データ変換

またはCSV, TSV, TXT … ファイルをここにドロップ ·

1ファイルあたり最大95 MB· 最大20ファイルまで· 30分後に削除

出力

ファイルは当社のサーバーで処理され、30分後に削除されます。

このツールの使い方

  1. 1

    CSVをアップロード

    拡張子が .csv、.tsv の区切りテキスト、または区切り文字付きの .txt ファイルを追加してください。1回につき最大20個、1ファイル95 MBまで対応しています。カンマ、セミコロン、タブ、パイプは自動で判別されます。

  2. 2

    ルートタグを設定

    詳細設定のXMLルートタグを、rows から取り込み先が求める名前(catalog や contacts など)に変更します。CSVが古いWindowsのプログラムで作られたものであれば、文字コードを選んでください。

  3. 3

    XMLに変換

    Convert to XMLを押して、ファイルをダウンロードします。まずブラウザで開き、ツリー形式で表示されれば整形式(well-formed)のXMLです。

CSVをXMLに変換する理由

CSVはシステムからデータを取り出すときの形式です。プログラム間でやり取りされるようになって数十年後の2005年10月に、ようやくRFC 4180として文書化されました。一方、XMLはデータの受け取り側が求める形式であることが多いものです。Adobe InDesignにカタログデータを流し込むデザイナー、XSLTスタイルシートでレコードをHTMLレポートにする開発者、仕入先リストをMicrosoft Accessに取り込む事務担当者。いずれも手元にあるのは表計算ソフトから書き出した行データで、必要なのはタグ付きのデータです。

手作業で変換するにはスクリプトや長い置換作業が必要で、難しいケースを見落としがちです。たとえば、アンパサンドを含む会社名、改行を含む引用符付きフィールド、ヨーロッパ版Excelでセミコロン区切りで保存されたファイルなどです。このコンバーターは、まずCSVを正しく解析してからマークアップを書き出します。データがまだブックの状態なら、ExcelをXMLに変換を使えばCSVの手順は不要です。

特殊文字をエスケープしたCSVからXMLへの変換例

引用符付きフィールドとアンパサンドを含むセミコロン区切りCSV、ルートタグは suppliers
name;city;since
"田中 & サンズ; 株式会社";大阪;1998
北光商事;札幌;2011

<?xml version="1.0" encoding="UTF-8"?>
<suppliers>
  <row>
    <name>田中 &amp; サンズ; 株式会社</name>
    <city>大阪</city>
    <since>1998</since>
  </row>
  <row>
    <name>北光商事</name>
    <city>札幌</city>
    <since>2011</since>
  </row>
</suppliers>
整形式XML整形式 · パース可能なXML
XML 1.0仕様の構文規則に従ったXMLです。ルート要素がちょうど1つ、すべての開始タグが閉じられている、タグが正しく入れ子になっている、属性値が引用符で囲まれている、テキスト内の & と < がエスケープされている、といった条件を満たします。パーサーは最初のエラーで処理を止めるため、アンパサンドが1つ紛れ込むだけでファイル全体が拒否されることがあります。整形式は妥当(valid)とは異なり、妥当であるにはXSDなどのスキーマに一致している必要もあります。

CSV XML変換の制限

1回で変換できるCSVファイル数
20
1ファイルの最大サイズ
95 MB
ルートタグの最大文字数
64
アップロードしたファイルが削除されるまで
30分

CSVとXMLの形式の基本情報

CSV

CSV(カンマ区切り値)

CSV は表形式のデータをプレーンテキストで表す形式で、1行が1つの行にあたり、列はカンマで区切ります。コンピューターの初期から使われており、RFC 4180 に記述がありますが、セミコロンやタブで区切る変種や、異なる文字コードを使うものも多くあります。ほとんどの表計算ソフト、データベース、分析ツールで読み込みと書き出しができるため、システム間でデータをやり取りする際の標準的な形式です。CSV に保存されるのは値だけで、数式、書式、複数のシート、データ型は含まれません。

圧縮方式
–
透過
–
アニメーション
–
登場時期
–
CSV 変換

XML

Extensible Markup Language

XML は、1998 年に W3C が公開した、構造化データ向けのマークアップ言語です。属性を持つタグを入れ子にして記述し、スキーマ、名前空間、検証に対応しているため、複雑な文書でも堅牢に扱えます。RSS フィード、SVG、Office 文書、サイトマップ、企業や行政の多くのデータ交換の基盤になっています。JSON に比べると冗長ですが、どのプログラミング言語でも、また多くの表計算ツールでも読み込めます。

圧縮方式
–
透過
–
アニメーション
–
登場時期
1998 · W3C
XML 変換

CSVからXMLへの変換が必要になるのは、フラットな出力をマークアップベースの処理に渡すときです。たとえば、XSLTレポート、XML読み込みに対応したレイアウトツール、データベースのXMLローダー、整形式でないものを拒否するパーサーを持つ連携システムなどです。

両者の違いは、構造とサイズのトレードオフです。CSVには型も入れ子もなく、使用する文字コードをファイル内で示す場所もありませんが、コンパクトです。XMLは行ごとに列名を2回ずつ繰り返し、文字コードを1行目で宣言します。受け取り側が新しいプログラムなら、通常はXMLよりJSONのほうが軽量です。JSONのデータをXMLしか受け付けないシステムに渡す逆のケースは、JSONをXMLに変換で扱っています。

CSV XML変換のよくある質問

CSVから作ったXMLはどのプログラムでインポートできますか?

汎用的なXMLを読み込めるものなら何でも使えます。たとえば、外部データから取り込むMicrosoft Access、データ連動レイアウト用のAdobe InDesignのXML読み込み、データをレポートに変換するXSLTプロセッサ、XMLパーサー向けに作られた社内ツールなどです。各行は、指定したルートタグの下に row 要素として出力されます。

受け取り側がレコードタグにrowではなくproductを求めています。変更できますか?

レコード要素は常に row で、外側の要素はXMLルートタグで変更できます。厳密なスキーマでレコード名が異なる場合は、1行のXSLTテンプレートか、<row> と </row> の置換で名前を変更してください。

値の中のカンマや引用符はどうなりますか?

CSVは先に引用符のルールに従って解析されるため、"Smith, Jane" は1つの値のままです。XMLではカンマのエスケープは不要で、& と < はそれぞれ &amp; と &lt; になります。

ヨーロッパ版Excelのセミコロン区切りCSVでは区切り文字が問題になりますか?

自動判別では、カンマのほかセミコロン、タブ、パイプも読み取ります。列数が非常に少なく判別を誤る場合は、区切り文字でセミコロンを明示的に指定して、もう一度変換してください。

CSVにヘッダー行がない場合はどうなりますか?

1行目を見出しにするをオフにしてください。列には順に汎用的な名前が付き、1行目を含むすべての行がレコードになります。タグ名は後から変更するか、CSVに見出し行を追加して再度変換してください。

XMLはCSVより容量が大きくなりますか?

はい、多くの場合は数倍の大きさになります。すべての値が開始タグと終了タグで囲まれ、それが行ごとに繰り返されるためです。サイズが気になる場合は、整形して出力をオフにしてインデントと改行を省くか、送信前にZIPで圧縮してください。