【发布时间】:2011-12-26 14:52:58
【问题描述】:
如何控制 XML 属性在输出文件中的列出顺序?
默认情况下,它们似乎是按字母顺序排列的,而我发送这个 XML 的程序显然没有处理。
例如我希望先显示zzzz,然后在下面的代码中显示bbbbb。
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element root = doc.createElement("requests");
doc.appendChild(root);
root.appendChild(request);
root.setAttribute("zzzzzz", "My z value");
root.setAttribute("bbbbbbb", "My b value");
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(file));
transformer.transform(source, result);
【问题讨论】:
-
如果您使用 JAXB 和带注释的对象来表示您的 XML,您可以使用 @XmlType-annotation 中的 propOrder 控制顺序。与此相关:stackoverflow.com/questions/5435138/jaxb-and-property-ordering