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免费学习笔记(深入)”;
JAXB内置的格式化仅添加基本缩进和换行,但有几点限制:
<?xml ...?>\n<root></root>),这是正常行为<tag></tag>)不展开为<tag></tag>,格式化不影响元素语法如果需要自定义缩进宽度、添加DOCTYPE、或处理特殊字符转义,可结合Transformer:
DOMSource或字符串TransformerFactory创建Transformer,设置OutputKeys.INDENT和"{http://xml.apache.org/xslt}indent-amount"
以上就是Java如何设置JAXB输出的XML格式化(带缩进)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号