xml属性が順序付けられていないことは明らかです。 私はちょうどこの奇妙な行動を見つけました!
これは、xml.dom.minidom.Element.writexml関数に追加されたソートに関連しているようです!
class Element(Node):
... snip ...
def writexml(self, writer, indent="", addindent="", newl=""):
# indent = current indentation
# addindent = indentation to add to higher levels
# newl = newline string
writer.write(indent+"<" + self.tagName)
attrs = self._get_attributes()
a_names = attrs.keys()
a_names.sort()
--------^^^^^^^^^^^^^^
for a_name in a_names:
writer.write(" %s=\"" % a_name)
_write_data(writer, attrs[a_name].value)
writer.write("\"")
行を削除すると、元のドキュメントの順序を保持する動作が復元されます。 あなたのコードに間違いがないことをdiffツールで確認する必要があるときは、良い考えです。これが唯一のPython 2.7以降 で動作します今
__init__(...)
self._attrs = OrderedDict()
#self._attrs = {}
writexml(...)
#a_names.sort()
と私は思います。要素のクラスで
from collections import OrderedDict
:
出典
2011-05-06 08:36:58
VGE
を_attrs、参照[このポスト](HTTP:// stackoverflowの。 com/a/34560411/540510) – thdox