XML 整形
XML を貼り付けると自動で整います。テキストと属性はそのまま保たれます。
整形後の XML
使い方
- XML を入力欄に貼り付けてください。入力するそばから整形され、押すボタンはありません。
- 整形か圧縮を選び、インデントをスペース 2 つか 4 つにすると、結果がすぐに更新されます。
- 構造が壊れている場合は、行・列・要素名がメッセージに示されます。結果をコピーするか .xml ファイルとしてダウンロードします。
例
入力
<order id="A-1042"><customer><name>佐藤 花子</name><email>hanako@example.com</email></customer><items><item sku="X-1" qty="2">解析機関の歯車</item><item sku="X-2" qty="1">パンチカード一式</item></items></order>
整形後
<order id="A-1042"> <customer> <name>佐藤 花子</name> <email>hanako@example.com</email> </customer> <items> <item sku="X-1" qty="2">解析機関の歯車</item> <item sku="X-2" qty="1">パンチカード一式</item> </items> </order>
既定のルールのみの例です。1 要素 1 行、1 階層につきスペース 2 つです。属性の順序、引用符、値は変更されず、<name> の中のテキストもそのままです。
ルール・制限・既知の問題
- 確認するのは構造だけです。タグの対応、属性の引用符・重複・区切り、要素名と属性名、エンティティの書式を見ます。DTD や XSD による検証、エンティティの展開、名前空間接頭辞の対応確認は行いません。
- 書き換えるのは構造上の空白だけです。属性間の空白と、テキストを持たない要素を構成する空白が対象です。属性の順序、引用符の種類、値、エンティティ、コメント、CDATA、DOCTYPE の内部サブセットは 1 文字ずつそのままコピーします。
- 混在コンテンツのインデントは変えません。<p>こんにちは<b>世界</b>!</p> のような場合、改行を入れるとテキストが変わるため、空白を入力のまま残します。xml:space="preserve" も同様にそのままコピーします。
- 空要素は入力した形を保ちます。<a></a> を <a/> に縮めたり、<a/> を展開したりしません。属性の並べ替えや引用符の統一も行いません。
- 圧縮が削除するのは構造上の空白だけです。テキスト内の空白、コメント、CDATA、DOCTYPE は保ち、内容から何も削除しません。
- 入力の末尾で閉じられていないタグ、コメント、CDATA、DOCTYPE はエラーではなく警告として報告し、結果は出力します。実際の誤り(タグの不一致、引用符のない属性値、孤立した「&」)は行・列付きのエラーになります。
- 断片(複数のトップレベル要素や、ルートの外にあるテキスト)は断片として整形し、その旨を報告します。要素がまったくない入力はエラーです。
- 行と列は Unicode のコードポイントで数えるため、絵文字は 1 列です。空白とみなすのはスペース、タブ、改行、復帰だけで、テキスト内の U+3000 や U+00A0 は内容であり削除しません。
- HTML には対応していません。</li> や <br> のような終了タグの省略は、閉じられていないものとして報告します。ファイルのアップロード、URL パラメータ、履歴、ツリー表示、XML → JSON 変換はありません。すべてブラウザ内で動作し、何もアップロード・保存されません。
- 20 万文字を超えると、入力が止まって約 0.6 秒後に結果が更新されます。テキストが切り捨てられることはありません。出力の改行は LF で末尾に改行は付かず、整形は何度行っても同じ結果になります。
関連ツール
構造が読みやすくなったあとによく使われるツールです。