# XMLを整形して確認する方法

アップロードせずXMLの字下げを整え、解析エラーの場所を確認し、JSONへの変換で何が変わるかを理解します。

[XMLフォーマッターを開く](https://abox.tools/ja/xml-formatter/): 読むために整えたXML、送るために平たく圧縮したXML、そして双方向のJSON変換。そのどれも、よそのサーバーに貼り付けられることはありません。

最終更新 2026年10月12日

## XMLを貼り付けるか読み込む

整形ツールを開き、XMLを貼り付けるかテキストファイルを選びます。字下げはスペース2個、4個、タブから選ぶか、圧縮出力を選べます。解析できた現在の結果をコピーまたはダウンロードします。入力を編集すると、確認中は古い結果が無効になります。

パーサーはローカルで動作し、文書の構文を確認します。XSDやDTDによる検証、アプリでの設定の正しさの証明、文中のURLへの接続は行いません。

![属性、文字列の値、繰り返す要素を含むXML入力とJSONへの対応付け。](https://abox.tools/screens/format-and-check-xml/mapping.webp)

属性は@regionになり、portは文字列のまま、繰り返すfeature要素は配列になります。

## 解析エラーの位置を確認する

閉じていないタグ、対応しない終了タグ、不正な文字参照は整形と変換を停止します。エラー位置への移動で、報告された場所にカーソルを置けます。外側の要素は1つ必要で、ルートが2つある文書やルート外のテキストは拒否します。

```
<settings>
  <port>8080</port>
</settings>
```

DOCTYPEのテキストはそのまま保持します。外部エンティティは解決しません。宣言でファイルやウェブサイトを指定しても読み込みません。

## 字下げの前に空白の扱いを理解する

テキスト値、CDATA、混合内容の要素はテキストを保持します。子要素の間だけにある空白は、`xml:space="preserve"`が適用されない限りレイアウトとして扱います。設定を読みやすくするための処理ですが、その空白をデータとするアプリでは再使用前に確認が必要です。

## XMLからJSONで変わるもの

結果を見る前に変換方向を選んでください。属性は`@`で始まるキー、繰り返す要素は配列となり、他の内容の隣のテキストは`#text`を使います。XMLの値は文字列のままです。`<port>8080</port>`は推測された数値にはなりません。

JSONへの対応付けでは、コメントと、テキストと子要素が交互に現れる順序が失われます。元に戻しても元の文書を再現する保証はありません。原本を保存し、アプリが使う項目を比較してください。

この対応付けをせずJSONだけを整形するには、[JSON整形ツール](https://abox.tools/ja/json-formatter/)を使います。
