Мне нужно сравнить два XML-файла, каждый из которых имеет длину около 13 000 строк.
К сожалению, код, который генерирует эти файлы, не генерирует данные в одном и том же порядке каждый раз (данные поступают из базы данных).
Поэтому я получаю ложные срабатывания при использовании стандартной построчной утилиты сравнения (WinMerge), даже после канонизации файла XML.
В качестве примера моей проблемы:
file1:
<a>
<b key="fruit.preferred">banana</b>
<b key="fruit.available">pineapple</b>
<b key="fruit.available">apple</b>
<b key="fruit.available">orange</b>
</a>
file2:
<a>
<b key="fruit.available">pineapple</b>
<b key="fruit.preferred">banana</b>
<b key="fruit.available">apple</b>
<b key="fruit.available">orange</b>
</a>
Эти файлы имеют одинаковое содержимое, но положение банановой линии означает, что они считаются разными по традиционным различиям. Существуют ли какие-либо инструменты, которые могут выполнять сортировку таким образом, чтобы файлы считались одинаковыми?
Кстати, файловые структуры XML сложнее, чем в приведенных выше примерах!