&、A、CDATA、属性引号原样保留,只重排缩进
@名字、同名兄弟变数组、文字变 #text,接口对接直接用
xmlns:xml、声明了没用到,逐条指出在哪个元素上
<、 一键还原,也能反向转回去
能。校验失败时错误面板给出第几行第几列和原因(比如「结束标签 </a> 配不上最外层还没闭合的 <b>,它在第 2 行打开」「属性「id」后面缺少 = 和带引号的值」「实体「 」没有声明过」),面板下方附出错那一行并用 ‹› 标出问题字符,点「跳到出错处」把光标放到那个字符。清单区把所有错误和提醒逐条列出,点任意一条就定位到那一行。错误超过 500 条会截断并注明。
不会。「文本空白」默认开启(原样保留),此时元素内部的文字、换行、CDATA 里的内容一律逐字不动;关闭它才会把元素内的多行文字并成一行、把连续空白压成一个空格。实体写法(&、A)、属性用的单引号还是双引号、<a/> 与 <a></a> 的差别都原样保留。缩进可选 2 空格、4 空格、Tab,属性可以分行写。格式化同一个文档两次结果完全一致。
压缩只删元素之间那些纯换行缩进的空白,标签内部的文字不动,CDATA 与注释也保留;勾上「去注释」才连注释一起去掉。压缩结果再格式化一次,和直接格式化的缩进层级一致。
文本视图是处理结果的逐字内容,结构树是按 XML 语法把这份文本逐层展开的样子:折叠、展开、搜索、逐节点复制都只影响视图。每一行显示的都是文本里的原样写法,路径带同名序号(如 /bookmarks/folder[1]/bookmark[2]),点「复制」拿到的是那一段原文。右侧有结果时树取右侧结果,右侧还空着时按左侧输入显示。树一次最多渲染 2000 行,到上限会注明,此时搜索只覆盖已渲染的部分。
属性变成 @名字,元素内只有文字时直接写成字符串,既有属性又有文字时文字放进 #text,同一层出现多个同名标签合并成数组,空元素写成空字符串,注释跳过,xmlns 与 xmlns:前缀 这类声明不进结果(前缀保留在名字里),实体引用会解码成真实字符。这份规则与常见接口框架的读法一致,转换结果本身是合法 JSON,可以接着用 JSON 工具处理。
先看有没有 BOM,再按声明里的 encoding 严格解码,失败就依次尝试 UTF-8、GB18030、Big5、Shift_JIS 并统计替换符个数,所以 Excel 或老系统另存的 GBK 文件不会变成满屏问号。页面仍会把三种可疑情况提醒出来:声明与实际字节不符、按声明解码成功但更像 UTF-8(给「按另一种编码重读」按钮)、解出来仍有替换符。文本框里直接粘贴的内容不涉及编码转换。
拖进来或打开的文件最大 20 MB,嵌套深度上限 512 层。30 万字符以上的文档自动暂停边输入边校验,状态栏写明「文档较大,已停止自动校验」,点「校验」仍会完整扫一遍。50 万字符以上时动作点下去右侧状态先亮「正在处理…(字符数)」,这一轮跑完前再点别的按钮会被忽略。缩进、属性分行、文本空白、压缩去注释、实时校验、自动换行和当前视图记在浏览器本地,下次打开沿用;输入和输出的内容不会被保存。
Ctrl + Enter 格式化,Ctrl + Shift + M 压缩,Ctrl + Shift + F 校验,Ctrl + Shift + J 转 JSON,Esc 关掉提示。输入框里选中多行后按 Tab 整块缩进、Shift + Tab 整块反缩进,选区不会被打散。