К сожалению, не существует универсального решения этой проблемы.Различия в XML очень чувствительны к тому, что вы считаете другим.В одном случае порядок дочерних узлов может быть важным, а в другом случае (может быть, даже в том же файле) он может быть неактуальным.
Взгляните на XMLUnit .Несмотря на то, что он нацелен на модульное тестирование, он представляет собой полный механизм XML-различий.Вы должны указать (в коде), как определить, что два узла имеют право на сравнение, и что делать со всеми найденными потенциальными различиями (т. Е. Являются ли они реальными или нет в вашем приложении).Он обнаруживает исчерпывающий список «разностных событий», включая
- Порядок атрибутов
- Количество атрибутов
- Порядок дочерних узлов
- количество дочерних узлов
- неявные и явные значения атрибутов
- различия в комментариях
- различия в типе документа
- различия в пространстве имен
И еще множество других.Любое из них может быть важным или неважным для вашего приложения, и только вы можете решить.Стоит посмотреть, но чтобы получить то, что вы хотите, потребуется определенная работа.