Проверить измененный файл относительно исходного, что не стер лишнее (xml-files)

есть файл first.xml который я изменяю с помощью ElementTree, добавляя элементы. До начала этих изменений, я копирую исходный файл- main.xml После всех изменений, скрипт должен перестраховаться "проверив себя" что не затер и не удалил уже существующие элементы

Вопрос, как реализовать сравнение двух файлов так, что если измененный файл отличается не только добавлеными элементами, то ошибка.

Мои идеи:

  1. Построчное или побайтовое сравнение, но это займет много времени
  2. Вычислить вес добавляемого элемента (строки) сложить с весом исходного файла, если не совпадает с измененым файлом - ошибка
  3. Оба файла (исходник и измененный) преобразовать в список (построчно), получить 3ий список с изменениями, если в нем не только добавленные элементы (строки) - ошибка

Но как будто слишком сложно и долго, верю в более элегантное решение, прошу подсказать

P.s. Код не прошу, достаточно теории


Ответы (1 шт):

Автор решения: Sergey Tatarincev

Если после себя надо еще и проверять, значит что-то вы делаете не так...

А вообще сравнить два xml и получить различия можно например так

from lxml import etree
from xmldiff import main, formatting

diff = main.diff_files('file1.xml', 'file2.xml',
                       formatter=formatting.XMLFormatter())

более детально см. https://pypi.org/project/xmldiff/

→ Ссылка