Самая большая проблема, вероятно, заключается в том, «какие совпадают url
элементы?».Я могу только догадываться и предполагать, что url
с тем же текстом внутри дочернего элемента loc
являются соответствующими элементами - и это то, что вы должны сказать XMLUnit.
Ваш пример очень распространен, новсе еще кое-что, что не может быть угадано (кроме грубой форсировки всех возможных перестановок и выбора той с наименьшими различиями).Это пример работы https://github.com/xmlunit/user-guide/wiki/SelectingNodes, вам нужно только заменить tr
на uri
и th
на loc
.
, чтобы сделать вещи конкретными.При сравнении элементов url
вы хотите, чтобы XMLUnit просматривал соответствующие дочерние элементы loc
и сравнивал их вложенный текст.Во всех остальных случаях вы можете выбирать среди элементов-братьев по имени (есть только один urlset
, и каждая пара элементов-братьев loc
и lastmod
определяется по именам тегов).
Переводит к условному ElementSelector
ElementSelectors.conditionalBuilder()
.whenElementIsNamed("url").thenUse(ElementSelectors
.byXPath("./loc", ElementSelectors.byNameAndText))
.elseUse(ElementSelectors.byName)
.build();
. Таким образом, вы сможете получить «похожий» результат, в котором единственными найденными различиями являются различия в порядке следования детей.