【问题标题】:XML attributes get sortedXML 属性得到排序
【发布时间】:2009-11-16 08:00:40
【问题描述】:

当我使用 minidom 创建文档时,属性在元素中按字母顺序排序。以here为例:

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"/>

如果您想要以电子邮件/姓名/昵称/照片顺序而不是创建时的姓名/昵称/电子邮件/照片顺序的属性,这一切都很好。

如何让属性按照创建的顺序显示?或者,您如何控制订单?

【问题讨论】:

  • 你为什么要这个? XML 中的属性按照定义没有顺序(与元素相反)。难道只是为了美化?
  • 如果我有一个 XSD 以 C-B-A 的顺序指定属性,而我只能按 A-B-C 的顺序写入它们,我是否满足 XSD?

标签: python xml minidom


【解决方案1】:

根据documentation,属性的顺序是任意的,但在 DOM 的生命周期内是一致的。这在 DOM 实现中很常见。对不起。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多