python使用xml.dom.minidom写xml节点属性会自动排序问题解决

1.背景及问题

一个xml文件,过滤掉部分节点,生成新的xml文件,但是生成后,发现节点的属性顺序变化了,根据key的字母信息排了序。如原始信息:

<string typename="time_type" length="8"/>

重新生成后的信息:

<string length="8" typename="date_type"/>

虽然不影响读取,但是变更了设定的顺序规则。

 

2.解决方案

在pythonlib库路径:C:\Users\USER\AppData\Local\Programs\Python\Python37-32\Lib\xml\dom 找到python文件minidom.py,将如下源码修改,修改前

attrs = self._get_attributes()
a_names = sorted(attrs.keys()) 

sorted即为排序代码,删除即可,修改后:

attrs = self._get_attributes()
a_names = attrs.keys()

删除 __pycache__ 目录,重新执行脚本,生成xml即为原始顺序的属性内容。

 

posted @ 2022-10-13 20:31  huhuahope  阅读(336)  评论(0编辑  收藏  举报