Malheureusement, il n'existe pas de solution unique à ce problème. XML Diffing est très sensible à ce que vous jugez différent. Dans un cas, l'ordre des nœuds enfants peut être important, et dans un autre cas (peut-être même dans le même fichier), il peut ne pas être pertinent.
Jetez un oeil à XMLUnit. Même s'il vise à tester les unités, il s'agit d'un moteur de différenciation XML complet. Vous devez indiquer (dans le code) comment déterminer que deux nœuds peuvent être comparés, puis que faire de toutes les différences potentielles trouvées (c'est-à-dire, réelles ou non, dans votre application). Il détecte une liste exhaustive des « événements de différence », y compris
- Attributs pour
- Nombre d'attributs
- nœud enfant pour
- nombre de nœuds enfants
- implicite vs attribut explicite des valeurs
- commentaire différences
- différences de type de document
- namespac e différences
Et tout un tas plus. N'importe lequel d'entre eux pourrait être important ou sans importance pour votre application, et vous seul pouvez décider. Cela vaut le coup d'oeil, mais il faudra du travail pour obtenir ce que vous voulez.
Solutions probables: [Outils Xml Diff/Merge gratuits] (http://stackoverflow.com/questions/1871076), [XML Diff and Merge] (http://stackoverflow.com/questions/430001) –