Это сложная задача, и нет общего (то есть независимого от слов) решения, отчасти потому, что только вы знаете, что важно в ваших данных, а что нет - например, в этом случае кажется, что порядок элементов ITEM не имеет значения (чтоне было бы случая, если бы вы сравнивали две статьи журнала).Предположительно, существуют некоторые причины, по которым нельзя рассматривать наличие TIEQTY в одном документе и его отсутствие в другом документе как существенную разницу, а также включение ORDERNUM, но не TIENUMBER в результат.
Один из подходов к этому:
(a) Свести данные до определенного уровня, скажем, ITEM, чтобы существенные свойства контейнера ITEM (например, ORDERNUM) стали свойствами ITEM.
(b) для каждого ITEM, вычислите aразличать подпись как строку, так что два элемента имеют разные подписи, если они разные.
(c) используйте группирование для группировки элементов по двум файлам по сигнатуре.
(d) output (некоторое представление) тех ЭЛЕМЕНТОВ, где размер группы равен 1.
Все это можно удобно сделать с помощью XSLT 2.0 или даже лучше, используя xsl:merge
в XSLT 3.0.