gpt4 book ai didi

python - lxml 保留属性顺序?

转载 作者:行者123 更新时间:2023-11-30 23:20:23 25 4
gpt4 key购买 nike

我正在使用 minidom 编写应用程序,但 minidom 不保留属性顺序(按字母顺序排序),因此我决定使用 lxml 来实现。

但是在以下代码行中我没有得到所需的顺序:

import lxml.etree as ET
SATNS = "link_1"
NS = "link_2"
location_attribute = '{%s}schemaLocation' % NS
root = ET.Element('{%s}Catalogo' % SATNS, nsmap={'catalogocuentas':SATNS}, attrib=
{location_attribute: 'http://www.sat.gob.mx/catalogocuentas'}, Ano="2014", Mes="02", TotalCtas="219", RFC="ALF040329CX6", Version="1.0")
print (ET.tostring(root, pretty_print=True))

这就是我期望得到的:

<catalogocuentas:Catalogo xmlns:catalogocuentas="link_1"
xmlns:xsi="link_2" xsi:schemaLocation="http://www.sat.gob.mx/catalogocuentas"
Ano="2014" Mes="02" TotalCtas="219" RFC="XXX010101XXX" Version="1.0">
</catalogocuentas:Catalogo>

按照我填写的顺序:

root=ET.element(...)

但我得到的是下一个,没有顺序:

<catalogocuentas:Catalogo xmlns:catalogocuentas="link_1" 
xmlns:xsi="link_2" RFC="ALF040329CX6" Version="1.0"
Mes="02" xsi:schemaLocation="http://www.sat.gob.mx/catalogocuentas" Ano="2014" TotalCtas="219">
</catalogocuentas:Catalogo>

有办法解决这个问题吗?

提前致谢!!

最佳答案

Python 中的字典是 unordered 。关键字参数通过传统上名为 **kwargs 的字典传递给函数,因此 the order is lost 。该函数不可能知道 ET.element 的参数传入的顺序。

如上所述in this question ,实际上没有任何方法可以完成此任务。 XML 不关心属性顺序,因此没有任何充分的理由这样做。

关于python - lxml 保留属性顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25518415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com