我正在使用JAXB来生成XML文件,并且由于业务需要,我目前正在使用XMLEventWriter将其写入其他XML文件的中间:
marshaller.marshal(jaxbElement, xmlEventWriter);
目前正在设置一些属性,如:
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(Marshaller.JAXB_ENCODING, "utf-8");
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
但是,除了 JAXB_FORMATTED_OUTPUT 设置为 true 之外,我的 XML未被格式化。
有谁知道可能是什么问题? 这只发生在我使用XMLEventWriter ...
时提前致谢。
答案 0 :(得分:3)
当您使用XMLEventWriter
作为接收器时,JAXB编组器仅负责向其发送适当的XML事件,XMLEventWriter
可能仍然选择写出未格式化的XML。除了XMLEventWriter
之外,我的建议是检查Marshaller
的配置。
答案 1 :(得分:0)
不幸的是,默认的XmlEventWriter
实现没有缩进。 stax-utils库提供了IndentingXMLEventWriter
,在这些情况下可能有所帮助。