У меня есть два файла XML, и мне нужно убедиться, что они содержат одинаковую точную информацию.
Независимо от порядка тегов или атрибутов.
Например, эти два файла XML должны быть равны:
test1.xml
<blocklist lastupdate="1459262434336" xmlns="http://www.mozilla.org/2006/addons-blocklist">
<emItems>
<emItem blockID="i454" id="[email protected]">
<versionRange minVersion="0" maxVersion="*" severity="3">
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
<versionRange maxVersion="3.6.*" minVersion="3.6"/>
</targetApplication>
</versionRange>
<versionRange maxVersion="*" minVersion="0"/>
<prefs>
<pref>test.blocklist</pref>
</prefs>
</emItem>
</emItems>
</blocklist>
test2.xml
<blocklist lastupdate="1459262434336" xmlns="http://www.mozilla.org/2006/addons-blocklist">
<emItems>
<emItem blockID="i454" id="[email protected]">
<prefs>
<pref>test.blocklist</pref>
</prefs>
<versionRange minVersion="0" maxVersion="*" severity="3">
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
<versionRange maxVersion="3.6.*" minVersion="3.6"/>
</targetApplication>
</versionRange>
<versionRange minVersion="0" maxVersion="*"/>
</emItem>
</emItems>
</blocklist>
Я попытался найти некоторые решения, такие как:
Я также собираюсь попробовать это решение
Но ты хоть представляешь, какие у меня тут варианты? Разве нормализация и канонизация XML не должны справиться с этим за меня?
что я здесь делаю не так?
Если бы я делал это в JSON, я бы использовал: json.dumps(data, sort_keys=True, separators=(',', ':'))