XML 代码格式化(基于 DOM 解析)
智能格式化,保持文本内容紧凑,仅元素节点换行缩进,使用浏览器原生 DOMParser 确保内容不丢失 节省 0%大文件模式
当前内容超过 2MB,编辑器仅显示前 500 行以保证流畅性。所有操作(格式化/压缩/验证)仍会在完整内容上执行。
零卡顿大文件
2MB+ 大文件流畅处理,智能虚拟滚动,仅渲染可视区域内容,格式化操作不阻塞界面。
隐私安全保护
纯浏览器端处理,使用原生 DOMParser 解析,XML 数据不会上传到任何服务器,适合敏感数据。
实时自动缓存
编辑内容自动保存到 localStorage,刷新页面不丢失,支持最大 5MB 缓存空间。
如何使用 XML 格式化工具
输入 XML 代码
在编辑器中粘贴 XML 代码,或拖拽上传 .xml 文件。支持从剪贴板直接粘贴大型 XML 文档。
选择操作
点击"格式化"按钮使用 DOM 解析进行美化,或点击"压缩"去除多余空格。实时验证会自动检查语法错误。
查看结果与导出
查看底部状态栏的验证结果,使用 Ctrl+F 查找内容,点击下载或复制按钮导出处理后的 XML。
常见问题(FAQ)
- 元素节点(如
<author>) - 文本节点(如
Gambardella, Matthew) - 属性节点(如
id="bk101") - 注释节点(
<!-- -->)和 CDATA 区块
- XML 声明(
<?xml version="1.0"?>) - 元素和属性(包括命名空间)
- 文本节点(包括空白字符处理)
- 注释(
<!-- -->) - CDATA 区块(
<![CDATA[]]>) - 实体引用(
<,&等) - 处理指令
技术实现原理
格式化算法
使用递归下降算法遍历 DOM 树。对于纯文本元素(只有一个文本子节点),采用紧凑格式 <tag>text</tag>;
对于包含子元素的节点,采用展开格式,子元素换行并增加缩进。使用 textContent 获取文本并 trim() 清理多余空白,
但保留有效内容。
大文件处理
采用虚拟化策略:文件内容完整保存在内存中,但编辑器仅渲染前 500 行。所有操作(格式化、压缩、验证)在完整数据上执行,
结果可选择性显示或下载。使用 requestAnimationFrame 和 setTimeout 避免阻塞主线程。