我使用xmltodict进行XML解析/反解,需要在处理一个文档时保留XML元素的顺序。下面是一个玩具REPL示例:
请注意,原始序列
>>> import xmltodict
>>> xml = """
... <root>
... <a />
... <b />
... <a />
... </root>
... """
>>> xmltodict.parse(xml)
OrderedDict([('root', OrderedDict([('a', [None, None]), ('b', None)]))])
>>> xmltodict.unparse(_)
'<?xml version="1.0" encoding="utf-8"?>\n<root><a></a><a></a><b></b></root>'
请注意,原始序列
[a, b, a]
被替换为[a, a, b]
。是否有办法使用xmltodict
保留原始顺序?
<root><a /><b /><a /></root>
(我的示例中的原始XML)与<root><a /> <a /> <b /></root>
(xmltodict的未解析输出)不同。 - el.atomo<a />
和<b />
表示该系统要按顺序执行的操作。我正在处理与该系统交互的应用程序,但不需要了解每个模式细节。我选择了_xmltodict_以方便使用;对于我的目的来说非常简单,它可以直接解析为Python字典,从而使其他用途的JSON序列化变得更加直接。 - el.atomo