Java中让JAXB输出格式化XML,关键在于设置Marshaller.JAXB_FORMATTED_OUTPUT为true;启用后自动添加两空格缩进和换行,但不可配置缩进符类型或宽度。

Java中让JAXB输出格式化(带缩进)的XML,关键在于配置Marshaller的Marshaller.JAXB_FORMATTED_OUTPUT属性为true。
启用格式化输出
在调用marshal()之前,设置格式化开关即可:
- 获取
Marshaller实例后,调用setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true) - 该属性值必须是
Boolean.TRUE或true(推荐用true,更简洁) - 不设置或设为
false时,默认输出为单行无缩进XML
完整示例代码
以下是最小可运行示例:
Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); // 可选:指定编码,避免乱码 marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8"); marshaller.marshal(obj, System.out); // 输出到控制台,带缩进
登录后复制
若输出到文件,可传入FileOutputStream或FileWriter,格式化效果同样生效。
标签: java apache 编码 stream 格式化输出
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~