如何用Java代码格式化(美化)XML字符串

星降
发布: 2025-12-23 03:11:28
原创
984人浏览过
可用Java内置Transformer类配合DOM解析器格式化XML字符串,核心是解析为Document后设置OutputKeys.INDENT为"yes"及缩进空格数(JDK 8+需额外设置indent-amount),再通过transform输出;对不规范XML需预校验或包裹临时根标签;第三方库如jsoup、dom4j亦可实现但需引入依赖。

如何用java代码格式化(美化)xml字符串

可以用Java内置的Transformer类配合DOM解析器来格式化XML字符串,核心是将字符串解析为Document对象,再用Transformer输出带缩进的XML。

使用Transformer实现XML美化

这是最常用、无需第三方依赖的方式。关键在于设置OutputKeys.INDENT为"yes",并指定缩进空格数(如4个):

  • 先用DocumentBuilder将XML字符串解析成Document对象
  • 创建Transformer实例,设置输出属性:编码、缩进、缩进空格数
  • 用DOMSource和StringWriter配合transform()方法获取美化后的字符串
注意:JDK 8+中需额外调用setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4")才能生效缩进值,仅设"yes"默认只缩进2格。

处理不规范的XML输入

如果原始字符串缺少根节点或含非法字符,DocumentBuilder.parse()会抛异常。建议先做基础校验:

  • 用String.trim()去除首尾空白
  • 检查是否以
  • 包裹一层临时根标签(如...)再解析,格式化后再去掉

替代方案:使用第三方库(如jsoup或dom4j)

若项目已引入jsoup,可利用其HTML/XML解析能力快速美化:

必剪Studio
必剪Studio

Bilibili发布的免费AI数字分身定制和视频创作工具

必剪Studio 183
查看详情 必剪Studio

立即学习Java免费学习笔记(深入)”;

  • jsoup.parse(xmlStr, "", Parser.xmlParser()).toString() 自动带缩进
  • dom4j的DocumentHelper.parseText(str).asXML()也支持格式化输出,但需显式配置OutputFormat.createPrettyPrint()

这类方式更简洁,但会引入额外依赖,适合已有对应库的项目。

以上就是如何用Java代码格式化(美化)XML字符串的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号