XMLの整形 — 崩れている場所を行と桁で示す
XMLを読みやすく整え、最小化し、正しいかどうかを検証します。エラーがあれば何行目の何文字目かと、その周辺を表示します。インデントは空白2・4・タブから選べます。
XMLは今も、設定ファイル、業務システム間のやりとり、RSS、Officeの文書形式の中身など、広い範囲で使われています。1行に詰まった状態で渡されると構造が読めません。
整形すると入れ子が見えるようになり、最小化すると送信量が減ります。どちらもブラウザの中で処理され、貼り付けた内容は外に出ません。
XMLはJSONより厳しい
開始タグと終了タグが必ず対応していなければならず、属性の値は必ず引用符で囲む必要があります。JSONに慣れていると見落としやすい決まりです。
また、& < > をそのまま書くことはできません。文章の中にこれらの文字が必要なら & < > と書くか、CDATAで囲みます。業務システムの連携で「なぜか特定のデータだけ通らない」原因は、たいていこれです。
エラーの位置は行と桁で示します。ブラウザの標準のエラーは位置が分かりにくいので、その周辺の文字も一緒に表示するようにしています。
よくあるエラー
| 原因 | 例 |
|---|---|
| 終了タグがない | <item>本文 のまま閉じていない |
| 大文字小文字が違う | <Item> を </item> で閉じている |
| 属性が引用符で囲まれていない | <a href=test> |
| 禁止された文字 | 本文に & をそのまま書いた |
| ルート要素が複数 | 最上位の要素が2つ以上ある |
整形で意味が変わることがあります
XMLでは、タグの間の空白や改行も内容として扱われる場合があります。整形のために改行やインデントを入れると、要素の中身が変わったと解釈されることがあります。
読むために整形するのは問題ありませんが、整形した結果をそのままシステムに渡すときは注意してください。空白の扱いが厳しい相手では、最小化した形で渡すほうが安全です。
文字コードの宣言も確認してください。先頭の宣言と実際の文字コードが食い違っていると、日本語が化けます。
よくある質問
エラーの場所が分かりません。
行と桁で表示します。その少し手前に、閉じ忘れたタグや引用符の抜けがあることがほとんどです。
& を書くとエラーになります。
& と書くか、CDATAで囲んでください。XMLでは特別な意味を持つ文字です。
大きなファイルでも大丈夫ですか?
数MB程度までは実用的です。それ以上は専用の道具のほうが快適です。
貼り付けたデータは送信されますか?
されません。処理はすべてブラウザの中で行われます。
