Проверка XML-файлов на равенство, игнорируя порядок элементовJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проверка XML-файлов на равенство, игнорируя порядок элементов

Сообщение Anonymous »

Рассмотрим следующее содержимое XML:

Код: Выделить всё

var xml1 = """








""";

var xml2 = """








""";
Я пытаюсь написать тест, который бы доказал их равенство.
Для этого я использую XMLUnit
Вот тестовый код:

Код: Выделить всё

assertThat(xml1, isSimilarTo(xml2)
.withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.byNameAndText)));
Я тоже пробовал

Код: Выделить всё

assertThat(xml1, isSimilarTo(xml2)
.withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.byNameAndAllAttributes)));
но безуспешно.
Я нашел статью, в которой обсуждается та же проблема:
https://www.insystems.nl/blog/testing-for- равенство-xml-файлов-с-различным-порядком-вложенных-элементов/
Но решение предполагает знание структуры XML.
Может быть другой подход - переупорядочить/сортировать элементы в обоих XML-файлах одинаково, а затем сравнить? Если да, есть ли библиотеки, которые это делают? Я пробовал это
https://stackoverflow.com/a/68798089/971355, но это тоже не помогло (похоже, сортирует элементы не на всех уровнях)

Подробнее здесь: https://stackoverflow.com/questions/792 ... ment-order
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»