【发布时间】:2019-10-30 09:11:43
【问题描述】:
我正在使用 poi 库使用转换器编写 xml 文件,并且我有这些属性:
java 1.8
//for output to file, console
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
//for pretty print
transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, "yes"); //TODO
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
但结果显示为standalone="no" 并且没有间距/缩进!!!
结果:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<MainStruct>
<StringArray1 value="H1"/>
<StringArray1 value="H1"/>
<StringArray1 value="H1"/>
<StringArray1 value="H1"/>
<Table>
<IntVar1 value="1"/>
<StringVar1 value="String1"/>
<IntVar2 value="2"/>
<StringVar2 value="S"/>
</Table>
.
.
预期:
<?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?>
<MainStruct>
<StringArray1 value="H1"/>
<StringArray1 value="H1"/>
<StringArray1 value="H1"/>
<StringArray1 value="H1"/>
<Table>
<IntVar1 value="1"/>
<StringVar1 value="String1"/>
<IntVar2 value="2"/>
<StringVar2 value="S"/>
</Table>
.
.
【问题讨论】:
-
在这个问题之后stackoverflow.com/questions/43754776/… 我使用了“Saxon”并且它解决了它。似乎问题出在Oracle JDK
-
您也可以使用 IBM java,它可以正常工作。
标签: xml apache-poi transformer