CSV→XML変換
CSV/TSVを貼り付けると、各行を1レコードとするXML(
CSV→XML変換とは
表形式のデータを XML で扱いたい場面は今も残っています。古くからある業務システムの取り込み仕様、帳票エンジンの入力、一部の API などです。このツールは CSV や TSV を貼り付けるだけで、各行を1レコードとする XML に変換します。出力は `
1行目をヘッダーとして読み、各列の見出しをタグ名に使います。ただし XML のタグ名には制約があるため、**数字で始まる・空文字である・使えない文字を含む見出しは `column1`・`column2` のような連番へ自動的に置き換えます。** 値に含まれる `&` `<` `>` は実体参照へエスケープします。処理はすべてブラウザー内で完結するため、顧客情報のような外に出したくないデータでも扱えます。
CSV を XML に変換する手順
- CSV または TSV を貼り付ける 1行目を見出し、2行目以降をデータとして読みます。タブ区切りにも対応しています。
- タグ名を確認する 見出しがそのままタグ名になります。日本語の見出しはタグ名として使えないため、連番に置き換わる点に注意してください。
-
生成された XML を確認する
`
` を最上位に、各行が ` ` として並びます。
- コピーして次の処理へ渡す XSLT による整形や、XML を受け取るシステムへの入力にそのまま使えます。
使いこなすためのヒント
- 「1行目を見出しとして扱う」を有効にすると、見出し行の列名がそのままXMLのタグ名として使われます(数字始まりや記号を含む等、XMLタグ名として使えない見出しは `column1`・`column2`... にフォールバックします)。
- 見出しを使わない場合は、全行がデータ行として扱われ、各列は `column1`・`column2`... というタグ名になります。
- レガシーなXMLベースのAPI・SOAP連携・一部の業務システムへのデータ取込など、CSVではなくXML形式が求められる場面で活用してください。
- 生成されたXMLは文字実体参照(
&・<・>)で特殊文字を安全にエスケープしているため、そのまま外部システムに取り込めます。
こんなときに使えます
XML 入力しか受け付けないシステムへ取り込む
スプレッドシートで作ったデータを、XML を要求する基幹システムへ渡す形に整えられます。
帳票エンジンのデータ源を作る
多くの帳票エンジンは XML をデータ源として受け取ります。CSV から素早く試作できます。
XSLT の練習用データを用意する
変換スタイルシートを書くとき、手元の表からすぐにサンプル XML を用意できます。
データ構造を目で確かめる
列と値の対応を XML の入れ子で見ると、CSV のままより構造を把握しやすくなることがあります。
CSV→XML 変換の用語
- タグ名の制約
- XML のタグ名は文字またはアンダースコアで始まる必要があり、空白や多くの記号を含められません。**この制約に合わない見出しは `column1` のような名前へ自動で置き換わります。**
- 実体参照
- `&` `<` `>` を `&` `<` `>` へ書き換える処理です。**`&` を最初に変換しないと二重エスケープになります。**
- row 要素
- 1行分のデータを表す要素です。本ツールは `
` の中に ` ` を並べる構造で出力します。
- TSV
- タブ区切りの表形式データです。Excel からコピーして貼り付けると多くの場合この形式になります。
- ヘッダー行
- 1行目に書かれた列の見出しです。これがタグ名の元になるため、英数字とアンダースコアだけで書いておくと変換後も読みやすくなります。
よくある質問
&・<・> などXMLの特殊文字を自動的に文字実体参照(&・<・>)にエスケープしてから出力するため、セルの値にこれらの文字が含まれていても正しい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が選ばれ続けているのは、この検証・変換エコシステムの充実度が理由の一つとされています。