100% ローカル — データがブラウザの外に出ることはありません

CSVをXMLに変換|どのXMLツールでも開ける文書にして出力

CSVの表を、1列につき1要素のXMLに変換します。ヘッダー名はXMLが許す要素名に直されるので、どのXMLツールに渡しても、そのまま解析できる文書になります。

高速 プライベート Cookieゼロ
インデント
区切り文字

CSV 入力

XML 出力

このツールの動作

CSV の各行が rows 文書の中の row 要素になり、各列がヘッダー名を持つ子要素になります。値は XML の要求どおりにエスケープされ、アンパサンドは &、山括弧は < と > になります。

インデント幅、型判定の有無、先頭に XML 宣言を置くかどうかを選べます。

列名は自由ではありません

XML の要素名には規則がありますが、表計算ソフトのヘッダーにはありません。名前に空白を含めることはできず、数字で始めることもできず、ほとんどの記号も使えません。いずれも、書き出されたヘッダー行にはごく普通に現れるものです。

そのため、ヘッダー名はそのまま写すのではなく調整します。

  • 禁じられた文字は下線になります。first name は first_name、a+b は a_b です。
  • XML が受け付けない文字で始まる名前は、切り詰めではなく先頭に付け足します。2col は _2col になり、どの列だったかが分かります。
  • XML が許す文字はそのまま残ります。アクセント付きの文字や CJK も含まれ、café と 日本語 は変わりません。

もう一方の選択肢は、ヘッダーをそのまま出力して、変換されたように見えて最初の解析で失敗するファイルを返すことです。その失敗は原因から遠く離れた場所で現れ、だからこそ厄介です。

重複したヘッダー

同じ名前の列が2つある場合、XML に到達する前に区別されます。2つ目は a_1 になります。列が黙って別の列に統合されることはありません。異なる2つのヘッダーが同じ名前に丸められる場合も同様です。user id と user_id はどちらも user_id になるため、2つ目は user_id_1 になります。これがなければ、2つのうち一方の列が値ごと文書から消えてしまいます。

プライバシー

すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

「first name」という列が first_name になったのはなぜですか。
XML の要素名に空白を含めることができないためです。そのまま出力すれば、どのパーサも受け付けない文書になり、しかもエラーは変換時ではなくファイルを読む段階で初めて現れます。
2col という列に下線が付くのはなぜですか。
XML の名前は数字で始められないためです。先頭に付け足すことで名前全体が読める形で残ります。`_2col` になり、どの列だったか分からなくなる `col` のような切り詰めにはなりません。
アクセント付きやCJKの列名は変わりますか。
いいえ。XML の名前規則は広い範囲の Unicode を許しているため、`café`、`nom-composé`、`日本語` はそのまま通ります。置き換えられるのは XML が実際に禁じている文字だけです。

関連ツール