CSV→XML変換

CSV/TSVを貼り付けると、各行を1レコードとするXML(値...形式)に変換します。

CSV→XML変換とは

表形式のデータを XML で扱いたい場面は今も残っています。古くからある業務システムの取り込み仕様、帳票エンジンの入力、一部の API などです。このツールは CSV や TSV を貼り付けるだけで、各行を1レコードとする XML に変換します。出力は `<列名>値...` という素直な構造で、そのまま XSLT やパーサーへ渡せます。

1行目をヘッダーとして読み、各列の見出しをタグ名に使います。ただし XML のタグ名には制約があるため、**数字で始まる・空文字である・使えない文字を含む見出しは `column1`・`column2` のような連番へ自動的に置き換えます。** 値に含まれる `&` `<` `>` は実体参照へエスケープします。処理はすべてブラウザー内で完結するため、顧客情報のような外に出したくないデータでも扱えます。

CSV を XML に変換する手順

  1. CSV または TSV を貼り付ける 1行目を見出し、2行目以降をデータとして読みます。タブ区切りにも対応しています。
  2. タグ名を確認する 見出しがそのままタグ名になります。日本語の見出しはタグ名として使えないため、連番に置き換わる点に注意してください。
  3. 生成された XML を確認する `` を最上位に、各行が `` として並びます。
  4. コピーして次の処理へ渡す XSLT による整形や、XML を受け取るシステムへの入力にそのまま使えます。

使いこなすためのヒント

  • 「1行目を見出しとして扱う」を有効にすると、見出し行の列名がそのままXMLのタグ名として使われます(数字始まりや記号を含む等、XMLタグ名として使えない見出しは `column1`・`column2`... にフォールバックします)。
  • 見出しを使わない場合は、全行がデータ行として扱われ、各列は `column1`・`column2`... というタグ名になります。
  • レガシーなXMLベースのAPI・SOAP連携・一部の業務システムへのデータ取込など、CSVではなくXML形式が求められる場面で活用してください。
  • 生成されたXMLは文字実体参照(&amp;・&lt;・&gt;)で特殊文字を安全にエスケープしているため、そのまま外部システムに取り込めます。

こんなときに使えます

XML 入力しか受け付けないシステムへ取り込む

スプレッドシートで作ったデータを、XML を要求する基幹システムへ渡す形に整えられます。

帳票エンジンのデータ源を作る

多くの帳票エンジンは XML をデータ源として受け取ります。CSV から素早く試作できます。

XSLT の練習用データを用意する

変換スタイルシートを書くとき、手元の表からすぐにサンプル XML を用意できます。

データ構造を目で確かめる

列と値の対応を XML の入れ子で見ると、CSV のままより構造を把握しやすくなることがあります。

CSV→XML 変換の用語

タグ名の制約
XML のタグ名は文字またはアンダースコアで始まる必要があり、空白や多くの記号を含められません。**この制約に合わない見出しは `column1` のような名前へ自動で置き換わります。**
実体参照
`&` `<` `>` を `&` `<` `>` へ書き換える処理です。**`&` を最初に変換しないと二重エスケープになります。**
row 要素
1行分のデータを表す要素です。本ツールは `` の中に `` を並べる構造で出力します。
TSV
タブ区切りの表形式データです。Excel からコピーして貼り付けると多くの場合この形式になります。
ヘッダー行
1行目に書かれた列の見出しです。これがタグ名の元になるため、英数字とアンダースコアだけで書いておくと変換後も読みやすくなります。

よくある質問

SOAP形式のWebサービスや、長年運用されている業務システム・基幹システムの多くは、JSONが普及する以前からXMLを標準データ形式として採用しており、現在もXML形式でのデータ連携を前提としています。そのため新しいシステムとの連携でCSVをXMLに変換する実務ニーズが今も存在します。

XMLのタグ名には「数字で始まらない」「特定の記号を含まない」等の命名規則があります。見出し名がこの規則に違反する場合(例: 数字始まりの列名や、スペース・記号を含む列名)、正しいXMLとして解析できなくなるため、本ツールでは自動的に `column1`・`column2`... という安全なタグ名にフォールバックします。

いずれも同じCSV解析ロジックを使っていますが、出力フォーマットが異なります。JSON・SQL・Markdown・HTML・XMLと、連携先のシステムや用途に応じて適切な出力形式を選べるよう、CSV変換シリーズとして複数のツールを用意しています。

本ツールは &・<・> などXMLの特殊文字を自動的に文字実体参照(&amp;・&lt;・&gt;)にエスケープしてから出力するため、セルの値にこれらの文字が含まれていても正しいXMLとして解析できる形で生成されます。
ツールくん

余談ですが ― XMLが「冗長」と呼ばれるようになった理由

XML(Extensible Markup Language)は1998年にW3Cで標準化され、2000年代前半のWeb業界では「システム間でデータをやり取りするための標準フォーマット」として圧倒的な地位を築いていました。SOAP・XML-RPC等の通信規格、RSS・Atomのフィード配信、さらには設定ファイル(Mavenのpom.xml等)まで、あらゆる場面でXMLが採用されていました。

しかし同じデータを表現する際、XMLはタグで開始・終了を毎回明示する必要があるため、JSON(2000年代中盤以降に普及)と比べてデータ量が大きくなりがちで「冗長(verbose)」と評されるようになりました。例えば `{"name":"Alice"}` というJSONに対応するXMLは <name>Alice</name> のようにタグ自体の文字数がデータより大きくなることも珍しくありません。

とはいえXMLには「XML Schema による厳密な型・構造の検証」「名前空間による衝突回避」「XSLTによる変換処理」など、JSONにはない成熟した仕様群があります。今も金融・医療・行政等のミッションクリティカルなシステム間連携でXMLが選ばれ続けているのは、この検証・変換エコシステムの充実度が理由の一つとされています。