XML属性被排序

6 投票
1 回答
1121 浏览
提问于 2025-04-15 16:03

当我使用minidom创建一个文档时,元素中的属性会按照字母顺序排列。举个例子,来自这里的例子:

from xml.dom import minidom

# New document
xml = minidom.Document()

# Creates user element
userElem = xml.createElement("user")

# Set attributes to user element
userElem.setAttribute("name", "Sergio Oliveira")
userElem.setAttribute("nickname", "seocam")
userElem.setAttribute("email", "seocam@taboca.com")
userElem.setAttribute("photo","seocam.png")

# Append user element in xml document
xml.appendChild(userElem)

# Print the xml code
print xml.toprettyxml()

结果是这样的:

<?xml version="1.0" ?>
<user email="seocam@taboca.com" name="Sergio Oliveira" nickname="seocam" photo="seocam.png"/>

如果你希望属性的顺序是email/name/nickname/photo,而不是name/nickname/email/photo,这样的排序就不太合适了,因为它们是按照创建时的顺序排列的。

那么,如何让属性按照你创建时的顺序显示呢?或者,怎么控制它们的顺序呢?

1 个回答

5

根据文档的说明,属性的顺序是随意的,但在整个DOM的生命周期内是保持一致的。这在不同的DOM实现中都是这样。抱歉。

撰写回答