XML圧縮ツール
タグ間の空白を取り除いてXMLを圧縮し、ペイロードを軽量化して転送を高速化します
入力
圧縮された出力
XML圧縮ツールとは?
整形されたXMLは読みやすく、各要素が独立した行に並び、入れ子構造をきれいなインデントで示します。問題は、そのインデントや改行が、機能的にはまったく不要なのにネットワークで送信されるバイトだということです。XML圧縮ツールはインデントされた文書を受け取り、タグ間の意味を持たない空白を取り除いて1行に折りたたみ、まったく同じツリーとして解析される形にします。
このツールを作ったのは、SOAPエンベロープ、RSSフィード、サイトマップ、設定ファイルが空白で膨らみがちで、高トラフィックなAPIではそうした余分なバイトが積み重なるからです。左側に整形済みXMLを貼り付けると、右側にコンパクトな版が表示され、リクエストボディやビルド成果物にそのまま組み込めます。すべて標準のDOMParserとXMLSerializerのAPIを使ってブラウザ内で実行されるため、データが端末から出ることはありません。フォーマット自体については、W3CのXMLページをご覧ください。
XML圧縮ツールの使い方
- XMLを貼り付ける – 整形済みのXMLをコピーして入力パネルに貼り付けるか、「Upload」ボタンでXMLファイルを読み込みます。
- 自動圧縮 – 入力するそばからツールが圧縮します。タグ間の空白や改行は瞬時に取り除かれ、要素内のテキストはそのまま保持されます。
- 結果を確認 – 圧縮されたXMLが出力パネルに1行で表示されます。元の文書と意味的にまったく同じです。
- コピーまたはダウンロード – 「Copy」をクリックすると圧縮済みXMLをクリップボードに置けます。「Download」をクリックすると.xmlファイルとして保存できます。
ヒント: 圧縮はタグ間の空白だけに作用します。要素が意味のある空白を含む場合(たとえば<pre>のようなブロックやCDATAセクション内)、その内容はそのまま保持されます。
例
1件の通信加入者レコードです。左側はインデントされて読みやすく、右側は1行に折りたたまれています。要素は同じで、バイト数だけが少なくなります。
<subscriber id="1"> <subscriberId>SUB-1001</subscriberId> <msisdn>447700900142</msisdn> <imsi>234150999912345</imsi> <plan>Unlimited 5G</plan> <roaming>true</roaming> <rsrp>-92</rsrp> </subscriber>
<subscriber id="1"><subscriberId>SUB-1001</subscriberId><msisdn>447700900142</msisdn><imsi>234150999912345</imsi><plan>Unlimited 5G</plan><roaming>true</roaming><rsrp>-92</rsrp></subscriber>
よくある利用シーン
SOAPとWebサービスのペイロード
SOAPエンベロープは冗長なことで有名です。送信前に要素間の空白を取り除けば、サーバーが読み取る内容を変えることなく、ネットワーク上の各リクエストとレスポンスが小さくなります。1時間に数千回の呼び出しを行う繁忙な連携では、節約される帯域幅は実質的です。XML 1.0仕様には、どの空白が意味を持たず安全に削除できるかが正確に記されています。
RSSフィードとサイトマップ
XMLサイトマップやRSS/Atomフィードは、クローラーやリーダーによって絶えず取得されます。圧縮して配信すれば、アクセスのたびに転送サイズが小さくなります。構造は変わらないため、パーサーはコンパクトな形を同じように扱います――文書がどう解析されるかはMDNのXML入門をご覧ください。
埋め込み設定
アプリやビルド成果物にXML設定を埋め込んでいますか?先に圧縮しておけばフットプリントを小さく保てます。フォーマットや一般的なパターンについては、W3SchoolsのXMLチュートリアルが確かな参考になります。
主な機能
- 瞬時の圧縮 – 入力するそばからXMLを圧縮します
- 空白の除去 – タグ間の改行とインデントを取り除きます
- コンテンツの保持 – 要素内のテキストは決して変更されません
- ファイルアップロード – XMLファイルを直接読み込んで圧縮できます
- 検証 – 圧縮前に不正なXMLを検出します
- プライバシー最優先 – すべての処理はブラウザ内で行われます
よくある質問
圧縮するとXMLデータは変わりますか?
いいえ。タグ間の空白と改行を取り除くだけです。要素名、属性、要素内のテキストはそのままなので、圧縮された文書は元の文書と同じツリーとして解析されます。
要素テキスト内の空白も取り除かれますか?
いいえ。意味のある空白――開始タグと終了タグの間の内容――は保持されます。隣接するタグ間の整形用の空白だけが折りたたまれます。
無効なXMLを圧縮できますか?
いいえ。ツールはまずDOMParserで入力を解析します。タグが閉じられていなかったり対応していなかったりすると、壊れた出力ではなくエラーが返ります。XMLエラーのデバッグには、Stack OverflowのXMLタグが役立ちます。
データは安全ですか?
はい。すべてブラウザ内でローカルに実行されます。XMLがサーバーにアップロードされることはないので、機密性の高いペイロードでも端末内にとどまります。
関連ツール
- XMLフォーマッター – 圧縮されたXMLを読みやすく整形します
- XMLバリデーター – 圧縮前にXMLを検証します
- XML to JSON – XMLをJSONに変換します