当前位置:  开发笔记 > 编程语言 > 正文

使用minidom进行修改时保留属性的顺序

如何解决《使用minidom进行修改时保留属性的顺序》经验,为你挑选了2个好方法。

有没有办法在使用minidom处理XML时保留属性的原始顺序?

说我有: 当我用minidom修改它时,属性按字母顺序重新排列为蓝色,绿色和红色.我想保留原始订单.

我通过循环返回的元素处理文件elements = doc.getElementsByTagName('color')然后我做这样的分配e.attributes["red"].value = "233".



1> 小智..:

为了保持属性顺序,我在minidom中稍作修改:

from collections import OrderedDict

在Element类中:

__init__(...)
    self._attrs = OrderedDict()
    #self._attrs = {}
writexml(...)
    #a_names.sort()

现在这只适用于Python 2.7+并且我不确定它是否真的有效=>使用风险......

请注意,您不应该依赖属性顺序:

请注意,start-tag或empty-element标记中的属性规范的顺序并不重要.



2> bobince..:

有没有办法在使用minidom处理XML时保留属性的原始顺序?

使用minidom no时,用于存储属性的数据类型是无序字典.pxdom可以做到这一点,虽然速度相当慢.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有