如何去除dom生成的xml文件头的standalone="no" ,去掉后无换行

baishuocs 2015-12-15 04:01:22
public void createXml(Document document,String fileName){

TransformerFactory tf = TransformerFactory.newInstance();
try {
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
System.out.println("创建成功!");
} catch (TransformerConfigurationException e) {
System.out.println(e.getMessage());
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (TransformerException e) {
System.out.println(e.getMessage());
}
}

用这个可以去掉,但是就没有换行了,求解答!!
document.setXmlStandalone(true);
...全文
2040 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34004088 2019-05-22
  • 打赏
  • 举报
回复 4
transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,"yes");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

添加这2行就可以了。
  • 打赏
  • 举报
回复
handler.startDocument(); AttributesImpl impl = new AttributesImpl(); // <department>标签前换行 String four = "\n"; handler.characters(four.toCharArray(),0,four.length()); handler.startElement("", "", "department", impl);
a851133067 2016-07-20
  • 打赏
  • 举报
回复
//设置换行 transformer.setOutputProperty(OutputKeys.INDENT, “yes”);
qq_27003041 2016-02-02
  • 打赏
  • 举报
回复
同问,遇到一样的问题

67,543

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧