编写XML元素时设置属性的顺序

时间:2010-07-06 08:22:43

标签: java xml

用java编写以下内容时:

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

添加属性的顺序不会保留在结果XML文件中。
如何控制XML元素内部属性的顺序(因此人们很容易阅读...)??

1 个答案:

答案 0 :(得分:4)

根据DOM standard

,没有为属性节点定义的顺序
  

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

(强调添加),XML standard

  

请注意,start-tag或empty-element标记中的属性规范顺序并不重要。

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