Сортировка XML-файлов, чтобы затем можно было найти различия
Мне нужно сравнить два XML-файла, каждый из которых имеет длину около 13 000 строк.
К сожалению, код, который генерирует эти файлы, не генерирует данные в одном и том же порядке каждый раз (данные поступают из базы данных).
Поэтому я получаю ложные срабатывания при использовании стандартной утилиты построчного различия (WinMerge), даже после канонизации XML-файла.
В качестве примера моего проблема:
Файл1:
<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>
Файл2:
<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-файлов сложнее, чем в приведенных выше примерах!