我正在尝试打开XML文件,添加一些更改,并保存到其他XML文件结果。我正在使用标准的javax.xml.parsers。*和javax.xml.transform * classes。
但是在保存的文档中,某些元素中的属性会被交换,例如:
当时:
<affiliation xml:id="curr1" countryCode="HU">
转型后:
<affiliation countryCode="HU" xml:id="curr1">
交换元素“countryCode”和“xml:id”。
有没有办法限制这些属性交换?
打开/保存XML代码:
// Imports
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
// Opening
Document document = getDocumentBuilder().parse(src);
// Saving
getTransformer().transform(new DOMSource(document), new StreamResult(dst));
private DocumentBuilder getDocumentBuilder() throws ParserConfigurationException {
return documentBuilder == null ? documentBuilder = documentBuilderFactory.newDocumentBuilder() : documentBuilder;
}
private Transformer getTransformer() throws TransformerConfigurationException {
return transformer == null ? transformer = transformerFactory.newTransformer() : transformer;
}
答案 0 :(得分:1)
不,XML中的属性顺序并不重要,XSLT明确允许系统以任何顺序报告属性,并且不能控制属性序列化的顺序。