3

我正在使用 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 时...

提前致谢。

4

2 回答 2

3

当您将 anXMLEventWriter用作接收器时,JAXB 编组器仅负责向其发送适当的 XML 事件,并且XMLEventWriter可能仍会选择写出未格式化的 XML。我的建议是检查你的XMLEventWriter配置Marshaller

于 2012-10-12T16:25:16.347 回答
0

不幸的是,默认XmlEventWriter实现不缩进。stax-utils库提供了一个IndentingXMLEventWriter在这些情况下可能会有所帮助的库。

于 2014-06-06T21:55:06.463 回答