如下所述应用猴子补丁::
在
ElementTree.py文件中,有一个名为的函数
_serialize_xml;
在这个功能; 应用以下提到的补丁;
##for k, v in sorted(items): # remove the sorted here for k, v in items: if isinstance(k, QName): k = k.text if isinstance(v, QName): v = qnames[v.text] else: v = _escape_attrib(v, encoding) write(" %s="%s"" % (qnames[k], v))这里; 删除
sorted(items)并使其
items像我上面所做的那样。
还禁用基于命名空间的排序(因为在上述补丁中;当xml属性存在命名空间时,排序仍然存在;否则,如果不存在命名空间;则上述方法工作正常);所以要做到这一点,替换所有
{}与collections.OrderedDict()从
ElementTree.py
现在,您已经按顺序将所有属性添加到该xml元素中。
在进行以上所有操作之前; 阅读Fredrik Lundh的版权消息,该消息出现在ElementTree.py



