XML差分比較器
ガイド
XML差分比較器
2つのXMLドキュメントをノードレベルまたは行レベルで比較します。XML差分比較器は追加、削除、変更、属性レベルの変更をハイライトし、数千のタグを目でスキャンせずに正確に変更を特定できます。
単純なテキスト差分ツールとは異なり、この比較器はXML構造を理解しています。スペースの美しさを無視し、コメントノードをオプションで無視し、属性セットの順序をデフォルトで無視します。結果として、差分はフォーマットのノイズではなく、本質的な変更を反映します。
使用方法
- オリジナルのXMLを XML A ボックスに貼り付け、更新されたXMLを XML B ボックスに貼り付けます。
- 選択 構造差分 ノードレベルの追加、削除、テキスト、属性の変更をグループ化して表示するか、または 行レベル差分 pretty-print後に統合ビューを表示します。
- トグル スペースを無視, コメントを無視と、 属性の順序を無視 比較の厳しさに応じて設定できます。
- 生成された統合パッチをコピーするか、.patchファイルとしてダウンロードしてコードレビューに適用できます。
機能
- 構造差分モード – 両方のドキュメントをツリーとして走査し、タグ名で要素をペアにし、明示的なXPathのようなパスに基づいて追加、削除、テキスト変更、属性変更を報告します。
- 行レベル差分モード – 両方のドキュメントを一貫したインデントでpretty-printし、長さの共通部分(LCS)を用いて行レベルの差分を計算し、親しみやすい統合差分ビューを生成します。
- ノイズ無視スイッチ – スペース、コメントノード、属性順序の独立したスイッチにより、外見的な編集が差分に汚染されません。
- 変更なしセクションの収縮 – 行モードでは、長く同じ行が連続して現れる場合、それらを1つのプレースホルダーに収縮し、画面が変更に集中できるようにします。
- 統合パッチエクスポート – 生成されるテキストは常に標準の
@@ ... @@hunk形式であり、プルリクエストに貼り付けたり、gitやpatchで適用できます。patch. - 自動処理 – テキストを入力またはオプションを変更すると、差分が再計算され、提出ボタンは必要ありません。
よくある質問
-
構造差分とテキスト差分のXMLの違いは何か?
テキスト差分はXMLを文字列のシーケンスとして扱い、タグを複数行に分割したり、属性の順序を変更したりすると変更として扱います。構造差分は両方のドキュメントをツリーにパースし、ノードの位置とタグに基づいて比較し、追加、削除、テキスト変更、属性変更といった意味的な差異を表面化します。設定ファイルやデータ交換用には、構造差分が非常にノイズが少ないです。
-
XMLの属性順序は一般的に意味がない理由は何か?
XML仕様は、1つの要素内の属性順序が重要でないことを宣言しています。同じ属性名と値を持つ2つの要素は、シリアル化されたマーカー内の順序に関わらず、同じ情報を表します。ほとんどのXMLパーサー、スキーマバリデータ、および後続のコンシューマーは属性順序を無視しており、そのため差分ツールは順序変更を無視するオプションを提供しています。
-
長さの共通部分アルゴリズムが統合差分をどのように生成するか?
長さの共通部分(LCS)アルゴリズムは、両方の入力に現れる順序の維持されたアイテムの最長シーケンスを見つけています。LCSに属する行は変更されていません。LCSに属さない1番目の入力の行は削除と見なされ、LCSに属さない2番目の入力の行は追加と見なされます。これらの分類に場所情報といくつかの行のコンテキストを包み込むことで、gitやpatchで使用される標準的な統合差分形式が生成されます。
-
XML内のスペースが時々意味を変えるのはなぜか?
多くのXMLドキュメントでは、要素間のスペースは純粋に装飾的ですが、特定のドキュメントタイプはスペースを重要視しています。XHTML、XSLTテンプレート、またはxml:space="preserve"属性を持つ要素は、内部スペースをデータの一部として扱います。構造を比較する安全なデフォルトはスペースを無視することですが、スペースを重要視する文法で作業する場合は厳密なマッチングを有効にできます。
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
