使用 Java DOM + 转换器时,在 xml 声明中省略独立属性。

2022-09-01 15:18:20

有没有办法告诉转换器(当使用 DOM 序列化 XML 文档时)省略独立属性?

最好不使用黑客,即省略整个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/>

答案 1

想通了..

而不是改变变压器,

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

  document.setXmlStandalone(true);

答案 2

document.setXmlStandalone(true/false);工作正常。