有没有办法在使用minidom处理XML时保留属性的原始顺序?
说我有:
当我用minidom修改它时,属性按字母顺序重新排列为蓝色,绿色和红色.我想保留原始订单.
我通过循环返回的元素处理文件elements = doc.getElementsByTagName('color')
然后我做这样的分配e.attributes["red"].value = "233"
.
为了保持属性顺序,我在minidom中稍作修改:
from collections import OrderedDict
在Element类中:
__init__(...) self._attrs = OrderedDict() #self._attrs = {} writexml(...) #a_names.sort()
现在这只适用于Python 2.7+并且我不确定它是否真的有效=>使用风险......
请注意,您不应该依赖属性顺序:
请注意,start-tag或empty-element标记中的属性规范的顺序并不重要.
有没有办法在使用minidom处理XML时保留属性的原始顺序?
使用minidom no时,用于存储属性的数据类型是无序字典.pxdom可以做到这一点,虽然速度相当慢.