Проверить измененный файл относительно исходного, что не стер лишнее (xml-files)
есть файл first.xml который я изменяю с помощью ElementTree, добавляя элементы. До начала этих изменений, я копирую исходный файл- main.xml После всех изменений, скрипт должен перестраховаться "проверив себя" что не затер и не удалил уже существующие элементы
Вопрос, как реализовать сравнение двух файлов так, что если измененный файл отличается не только добавлеными элементами, то ошибка.
Мои идеи:
- Построчное или побайтовое сравнение, но это займет много времени
- Вычислить вес добавляемого элемента (строки) сложить с весом исходного файла, если не совпадает с измененым файлом - ошибка
- Оба файла (исходник и измененный) преобразовать в список (построчно), получить 3ий список с изменениями, если в нем не только добавленные элементы (строки) - ошибка
Но как будто слишком сложно и долго, верю в более элегантное решение, прошу подсказать
P.s. Код не прошу, достаточно теории
Ответы (1 шт):
Если после себя надо еще и проверять, значит что-то вы делаете не так...
А вообще сравнить два 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/