21 lines
578 B
Python
21 lines
578 B
Python
import xml.etree.ElementTree as ET
|
|
import difflib
|
|
import sys
|
|
import pathlib
|
|
|
|
def canon(path):
|
|
tree = ET.parse(path)
|
|
root = tree.getroot()
|
|
for elem in root.iter():
|
|
elem.attrib.pop('ExportDate', None)
|
|
# sort attributes
|
|
if elem.attrib:
|
|
items = sorted(elem.attrib.items())
|
|
elem.attrib.clear()
|
|
elem.attrib.update(items)
|
|
return ET.tostring(root, encoding='unicode').splitlines()
|
|
|
|
a = canon(sys.argv[1])
|
|
b = canon(sys.argv[2])
|
|
for l in difflib.unified_diff(a,b, lineterm=''):
|
|
print(l) |