可用Java内置Transformer类配合DOM解析器格式化XML字符串,核心是解析为Document后设置OutputKeys.INDENT为"yes"及缩进空格数(JDK 8+需额外设置indent-amount),再通过transform输出;对不规范XML需预校验或包裹临时根标签;第三方库如jsoup、dom4j亦可实现但需引入依赖。
可以用Java内置的Transformer类配合DOM解析器来格式化XML字符串,核心是将字符串解析为Document对象,再用Transformer输出带缩进的XML。
这是最常用、无需第三方依赖的方式。关键在于设置OutputKeys.INDENT为"yes",并指定缩进空格数(如4个):
setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4")才能生效缩进值,仅设"yes"默认只缩进2格。
如果原始字符串缺少根节点或含非法字符,DocumentBuilder.parse()会抛异常。建议先做基础校验:
若项目已引入jsoup,可利用其HTML/XML解析能力快速美化:
这类方式更简洁,但会引入额外依赖,适合已有对应库的项目。