CSVからXMLへの変換ツール

現代のAPIではJSONが標準として採用されているものの、多くの企業システムでは依然としてXMLが使用されています。例えばSOAPサービス、古い市場向けの製品フィード、SEPA決済ファイル、XBRL報告書などです。このコンバーターはCSVファイルを入力し、ルート要素および行ごとの項目要素の名前を指定することで、各ヘッダーが各行内の子要素として適切に構成されたXMLドキュメントを生成します。特殊文字はエスケープされ、無効なXMLタグ名も修正されるため、出力結果はあらゆる環境で正しく解析可能です。

XMLの生成方法

  1. 1

    CSVを貼り付ける

    変換ツールが各フィールド要素に付ける名前を認識できるように、ヘッダー行を含めてください。

  2. 2

    ルートとアイテムの名前を指定する

    デフォルト値は`<items>`と`<item>`です。文字またはアンダースコアで始まる任意の名前で上書きできます。

  3. 3

    タグ名をサニタイズ

    文字・数字・アンダースコア以外の文字はアンダースコアに変換され、文字で始まらないタグは安全なデフォルト値に置き換えられます。

  4. 4

    値をエスケープ

    値内のアンパサンド、山かっこ、引用符はXMLエンティティに置き換えられるため、出力は常に有効な形式になります。

出力の表示形式と機能範囲

入力CSV

sku,name,price
A-101,Widget,9.99
B-202,Gadget,14.50

デフォルト設定でのXML出力

<?xml version="1.0" encoding="UTF-8"?>
<items>
  <item>
    <sku>A-101</sku>
    <name>Widget</name>
    <price>9.99</price>
  </item>
  <item>
    <sku>B-202</sku>
    <name>Gadget</name>
    <price>14.50</price>
  </item>
</items>

タグ名のルール(XML 1.0)

許可 不許可
文字、数字、ハイフン、アンダースコア、ドット 空白、&<>、引用符、括弧、スラッシュ
文字またはアンダースコアで始めること 数字や句読点で始めることは不可
xmlという接頭辞は予約済み xmlで始まるタグは拒否される場合がある

コンバーターはヘッダー名内の不正な文字を自動的にアンダースコアで置換します。ヘッダーが数字で始まる場合、タグ全体がfield_Nに置き換えられます。

エスケープ表

値はENT_XML1フラグ付きのhtmlspecialcharsを通るため、次の文字が置換されます:

  • &&amp;
  • <&lt;
  • >&gt;
  • "&quot;
  • '&apos;

一般的な下流での利用方法

  • 既存のマーケットプレイスや価格比較サイト向けの「製品フィード」
  • シートデータからサンプルペイロードを生成する必要がある場合のSOAPリクエストボディ。
  • XBRLまたはDublin Coreスタイルのシンプルなスキーマで、フラットレコードを命名された要素に対応付けます。
  • Android用文字列リソースですが、すべてのデータを<resources>でラップし、アイテム要素の名前を<string name="...">に変更する必要があります。

よくある質問

文字・数字・アンダースコア以外の文字はアンダースコアに置き換えられるため、Product NameProduct_Nameになります。サニタイズ後の名前が文字またはアンダースコアで始まらない場合は、XMLとして有効に保つためfield_Nに置き換えられます。

直接的にはできません、すべてのCSVフィールドはアイテム内の子要素として扱われます。属性ベースのXMLの場合には、出力データを後処理するか、スキーマに特化したツールを使用する必要があります。

はい。出力は<?xml version="1.0" encoding="UTF-8"?>から開始します。このフラグメントをより大きなドキュメント内に埋め込む場合は、手動で削除してください。

はい。貼り付けたCSVはサーバーに送信されます。解析、エスケープ処理、XMLの組み立てはサーバー側で実行され、CSVはXML出力の生成にのみ使用され、保存されません。

関連ツール

このツールは他の言語でも利用できます