01 / 例
例
<ruuto>
<messeji>こんにちは</messeji>
<kensu>2</kensu>
</ruuto><ruuto><messeji>こんにちは</messeji><kensu>2</kensu></ruuto>コード整形 / MULTIVERTO
要素のみで構成される XML ノード間の空白を削減します。
01 / 例
<ruuto>
<messeji>こんにちは</messeji>
<kensu>2</kensu>
</ruuto><ruuto><messeji>こんにちは</messeji><kensu>2</kensu></ruuto>02 / ガイド
子要素の間にあるインデントだけの空白を減らします。文字や数字を含むテキスト値は圧縮しません。XML を読む側が空白だけのテキストノードにも意味を持たせている場合は、この保守的な削除でも結果が変わる可能性があります。元文書とコンパクト化後の文書を受信システムで比べ、要素の順序、テキスト値、属性に加えて、空白ノードの扱いも確認してください。
この操作の対象は、XML 要素間にある空白だけのノードです。受信側のパーサー設定によってはその空白が保持されるため、削除後の文書を実際の用途でテストする必要があります。名前空間の接頭辞は文字として残しますが、ここで名前空間の意味を解決するわけではありません。スキーマ検証、名前空間の確認、正規化が必要なら対応する XML パーサーを使ってください。
XML の配置用空白を減らす例として、サンプルの root 要素に message が Hello、count が 2 の子要素がある文書を考えます。要素間の改行とインデントを削ると <root><message>Hello</message><count>2</count></root> になります。タグ名や値を翻訳したり変更したりはしません。受信側が空白だけの子ノードもデータとして読む場合は、解析後のノード一覧を元と結果で比べてください。署名や正規化が必要な場合は、元のシリアライズ済み文書を保存します。
単純な XML ツリーからインデント用の空白ノードを減らして保存・比較するときに使います。受信側が空白だけのテキストノードをデータとして扱うなら、そのノードを消す操作でも意味が変わります。有意なテキスト、属性値、エンティティ参照は短縮しませんが、バイト単位の署名は変わります。元の文書を保持し、受信側のパーサーで要素構造と空白の扱いを確認してください。
ガイドを探す