有没有办法告诉Transformer(使用DOM序列化XML文档时),省略独立属性?
最好不使用hack,即省略整个XML声明,然后手动预先添加。
我目前的代码:
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.STANDALONE, "yes"); //Note nothing is changed
StreamResult result = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(document);
transformer.transform(source, result);
return result.getWriter().toString();
电流:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<someElement/>
拟:
<?xml version="1.0" encoding="UTF-8">
<someElement/>
答案 0 :(得分:47)
想出来......
而不是改变变压器,
我将以下内容添加到文档对象中。
document.setXmlStandalone(true);
答案 1 :(得分:2)
document.setXmlStandalone(true/false);
工作正常。
答案 2 :(得分:1)
您必须使用以下组合:
doc.setXmlStandalone(true);
和
transformer.setOutputProperty(OutputKeys.STANDALONE, "yes"); // this is used to show the standalone tag
答案 3 :(得分:0)
您使用的是哪个Java版本和/或哪个XSLT转换器?对于Sun Java 1.6.0_16,如果设置输出属性且内容也正确,则仅在输出文档中设置独立属性。