Java:将DOM写入XML文件(格式化问题)

Vha*_*run 27 java xml formatting pretty-print

我正在使用org.w3c XML API打开现有XML文件.我正在删除一些节点,而我正在添加其他节点.

问题是添加的新节点是一个接一个地写入的,没有换行符,也没有缩进.虽然XML文件确实有效,但人们很难检查它.

无论如何都要添加缩进,或者至少在每个节点后添加换行符?

Chr*_*ung 54

我假设您正在使用a Transformer来进行实际写作(到a StreamResult).在这种情况下,请在致电之前执行此操作transform:

transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句:在最新的jdk中,你需要做一个bug来解决这个问题:TransformerFactory tFactory = TransformerFactory.newInstance(); tFactory.setAttribute("indent-number",2); (6认同)

小智 17

transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
Run Code Online (Sandbox Code Playgroud)

source 如何从Java中打印XML?