以规范形式规范化 Python 中的两个 XML 文件
Normalize in canonical form two XML files in Python
我有两个 XML 文件,我需要检查它们是否包含完全相同的信息。
不考虑标签或属性顺序。
例如这两个 XML 文件应该相等:
test1.xml
<blocklist lastupdate="1459262434336" xmlns="http://www.mozilla.org/2006/addons-blocklist">
<emItems>
<emItem blockID="i454" id="sqlmoz@facebook.com">
<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="sqlmoz@facebook.com">
<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>
我试图找到一些解决方案,例如:
我也去试试this solution
但是你知道我在这里有什么选择吗? XML 规范化和规范化不是应该为我处理这个吗?
我做错了什么?
如果我在 JSON 中这样做,我会使用:json.dumps(data, sort_keys=True, separators=(',', ':'))
对于那些对此主题感兴趣的人,我创建了一个 xml-verifier
脚本,该脚本通过将 xml 转换为 JSON 文件然后将两个文件导出为 Canonical JSON 并对它们进行比较。
https://github.com/mozilla-services/amo2kinto/blob/1.7.2//amo2kinto/verifier.py#L80-L108
我有两个 XML 文件,我需要检查它们是否包含完全相同的信息。
不考虑标签或属性顺序。
例如这两个 XML 文件应该相等:
test1.xml
<blocklist lastupdate="1459262434336" xmlns="http://www.mozilla.org/2006/addons-blocklist">
<emItems>
<emItem blockID="i454" id="sqlmoz@facebook.com">
<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="sqlmoz@facebook.com">
<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>
我试图找到一些解决方案,例如:
我也去试试this solution
但是你知道我在这里有什么选择吗? XML 规范化和规范化不是应该为我处理这个吗?
我做错了什么?
如果我在 JSON 中这样做,我会使用:json.dumps(data, sort_keys=True, separators=(',', ':'))
对于那些对此主题感兴趣的人,我创建了一个 xml-verifier
脚本,该脚本通过将 xml 转换为 JSON 文件然后将两个文件导出为 Canonical JSON 并对它们进行比较。
https://github.com/mozilla-services/amo2kinto/blob/1.7.2//amo2kinto/verifier.py#L80-L108