-1

次のようなxmlドキュメントがあります。

<datatypes xmi:id="ID_01"</datatypes>
<datatypes xmi:id="ID_02">
  <fields xmi:id="ID_03">
    <datatype xmi:idref="ID_01"></datatype>
  </fields>
</datatypes>

xml ファイルを変更する spesil ツールもあります。新しいノード属性を追加したり、古い属性を変更したりできますが、使用後はすべての ID が変更されます。

使用後のツール:

<datatypes xmi:id="ID_11"</datatypes>
<datatypes xmi:id="ID_12">
  <fields xmi:id="ID_13">
    <datatype xmi:idref="ID_11"></datatype>
  </fields>
  <something_new/>

</datatypes>

2 つの xml ファイルを比較して、< something_new/>だけを見つけたい。標準差分を使用すると、すべての変更が表示されます(IDも)

この問題を解決する簡単な方法はありますか? そうでない場合、そのような比較をより速く書くためにどの言語(IDE)を使用する必要がありますか。

4

2 に答える 2

0

diffxmlを試すことができます。

XMLUnitには差分機能があります

于 2013-03-05T12:35:52.690 に答える
0

Spesil のドキュメント (これはライブラリですか? これに関するドキュメントはどこにも見つかりませんでした) を見て、この動作が期待どおりかどうかを確認したいと思います。ID 番号の置き換えを停止する構成がある可能性があります。 .

この XML メッセージのスキーマがある場合は、JAXB を使用して XML をアクセス可能なモデルにアンマーシャリングできます。前と後を渡し (両方をマーシャリング)、変更を探すルーチンを記述できます)。これは、オブジェクトとして変更にアクセスできるため (差分ツールの場合のようにテキストの変更だけでなく)、変更のさらに属性/要素にアクセスする必要がある場合に適した方法です。変更をどのように使用するかによって異なります。

Jラブ

于 2013-03-05T12:37:59.660 に答える