Я хочу сравнить два xml-файла с помощью XMLUnit. Я хотел бы, чтобы в Детальдиффе не сообщалось о идентичных тегах в разных заказах как отличия. Например, если я создал DetailedDiff с этими двумя отрывками:Как игнорировать порядок идентичных элементов с помощью детального разбора XMLUnit?
<a><b/><c/></a>
и
<a><c/><b/></a>
The DetailedDiff создаст два отличия с момента в Ь и с бирками неисправны. Я попытался переопределить квалификаторы элементов, но это не приводит к каким-либо изменениям. Я что-то делаю неправильно или это невозможно сделать с XMLUnit? Для справки здесь используется код, который я использую для сравнения двух xml-файлов (не включая вызовы overrideElementQualifier).
public List<Difference> getDifferenceList(Reader file1, Reader file2) {
Diff d = new Diff(file1, file2); //I'm passing the args as FileReaders
d.overrideElementQualifier(new RecursiveElementNameAndTextQualifier());
detailedDiff = new DetailedDiff(d);
List<Difference> allDifferences = detailedDiff.getAllDifferences();
return allDifferences;
}
Это прекрасный ответ. Спасибо. Однако мне нужно игнорировать узлы, которые не существуют. Так как я не хочу видеть в результате выход такой вывод: ожидаемое присутствие дочернего узла «null», но было ...... Как я могу это сделать? С уважением. – limonik
Для этого вы можете использовать тот же подход @limonik - разница, которую вы хотите игнорировать, это 'CHILD_NODE_NOT_FOUND_ID' и, вероятно,' CHILD_NODELIST_LENGTH_ID'. –