【问题标题】:Setting the order of attribute when writing XML Element [duplicate]编写 XML 元素时设置属性的顺序 [重复]
【发布时间】:2011-03-12 04:57:38
【问题描述】:

在java中编写如下:

Element fieldEl = targetDocument.createElement("field");
fieldEl.setAttribute("Wine","Marlo");
fieldEl.setAttribute("Beer","Corona");

添加属性的顺序不会保存在结果 XML 文件中。
如何控制 XML Element 中属性的顺序(这样便于人类阅读……)??

【问题讨论】:

    标签: java xml


    【解决方案1】:

    根据DOM standard没有定义属性节点的顺序:

    实现 NamedNodeMap 接口的对象用于表示可以按名称访问的节点集合。注意 NamedNodeMap 不是从 NodeList 继承的; NamedNodeMaps 不以任何特定顺序维护。 实现 NamedNodeMap 的对象中包含的对象也可以通过序号索引访问,但这只是为了方便枚举 NamedNodeMap 的内容,并不意味着 DOM 指定了这些节点的顺序。强>

    (添加了重点),XML standard 中也没有:

    请注意,开始标签或空元素标签中属性规范的顺序并不重要。

    我认为,许多 DOM 实现根本不支持属性排序。您必须编写自己的序列化机制才能实现排序(没有双关语)。

    【讨论】:

    • 不,这是 xml 标准。如果您想要有序值,请将您的信息放入元素中。
    猜你喜欢
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多