【发布时间】:2022-01-15 13:52:16
【问题描述】:
我知道过去有人问过这个问题,但它们都是几年前提出的。我想知道是否对 Python 模块(例如 lxml、minidom 或 etree)进行了任何更改,这将允许我们在不打补丁的情况下保留 XML 文件中的属性顺序。
我需要保留订单,因为我提供文件的程序依赖它。
如果没有更新,最简单的实现方法是什么?
【问题讨论】:
-
如果您提供文件的程序依赖于属性的顺序,那么该程序有一个应该修复的错误。
-
不幸的是,该程序是外部的,所以我对此无能为力。并且属性是数据非常相关的子元素的一部分。
-
您可以使用
OrderedDict来保留带有lxml 的属性顺序。见stackoverflow.com/a/22596064/407651 -
除了@mzjn 的答案/评论:这个答案可能也很有趣:stackoverflow.com/a/54034770/960592
-
@Ideogram:Python 3.8 中的 ElementTree 和 minidom 保留属性顺序:stackoverflow.com/a/60176826/407651、stackoverflow.com/a/61267614/407651
标签: python xml lxml elementtree minidom