使用Java DOM + Transformer时省略xml声明中的独立属性.

vic*_*csz 23 java xml dom

有没有办法告诉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();
Run Code Online (Sandbox Code Playgroud)

当前:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<someElement/>
Run Code Online (Sandbox Code Playgroud)

意:

<?xml version="1.0" encoding="UTF-8">
<someElement/>
Run Code Online (Sandbox Code Playgroud)

vic*_*csz 47

弄清楚了..

而不是改变变压器,

我将以下内容添加到文档对象中.

  document.setXmlStandalone(true);
Run Code Online (Sandbox Code Playgroud)

  • 为什么这甚至有效?根据规范:https://www.w3.org/TR/2004/REC-xml-20040204/#sec-rmd"如果有外部标记声明但没有独立的文档声明,则值"no"为假定." 答案:/sf/ask/390505181/还指出,如果缺少独立属性,则假定为"no".那怎么来document.setXmlStandalone(true); 删除属性? (5认同)