Desafortunadamente, no hay una solución única para este problema. XML diffing es muy sensible a lo que USTED considera diferente. En un caso, el orden de los nodos secundarios podría ser importante, y en otro caso (tal vez incluso en el mismo archivo) podría ser irrelevante.
Eche un vistazo a XMLUnit. Aunque está dirigido a pruebas unitarias, es un motor completo de diferenciación XML. Debe indicar (en el código) cómo determinar que dos nodos son elegibles para la comparación, y luego qué hacer con todas las diferencias de potencial encontradas (es decir, si son reales o no, en su aplicación). Detecta una lista exhaustiva de los "eventos de diferencia", incluyendo
- fin Atributo
- número de atributos
fin nodo
- Niño
- número de nodos secundarios
- implícita vs atributo explícito valora
- comentario diferencias
- doctype diferencias
- namespac e diferencias
Y mucho más. Cualquiera de estos puede ser importante o no importante para su aplicación, y solo usted puede decidir. Vale la pena echarle un vistazo, pero tomará un poco de trabajo conseguir lo que quieres.
Soluciones probables: [Herramientas Diff/Merge Xml gratuitas] (http://stackoverflow.com/questions/1871076), [XML Diff and Merge] (http://stackoverflow.com/questions/430001) –