确定性
单遍扫描
有限状态机逐字符推进;相同输入始终产生相同输出,不依赖格式化器的偏好。
xmlsquish 递归处理 XML 提示词,压缩布局空白,并在标签与标签、标签与单词、单词与标签之间保留且只保留一个空格。
输入保持不变;结果写入同名 .o.xml 文件。
它不是保持 XML 语义的通用压缩器:会改写普通字符数据中的空白,可能改变混合内容,且不遵守 xml:space="preserve"。请只处理已确认空白是布局噪声的提示词。
<role>
You are a careful agent.
</role>
<task>
Summarize this.
</task><role> You are a careful agent. </role> <task> Summarize this. </task>做得少,做得准
这是面向提示词的词法规范化器,而非 XML 信息集压缩器:它规范化普通字符数据的 XML 空白,不构造 DOM。
确定性
有限状态机逐字符推进;相同输入始终产生相同输出,不依赖格式化器的偏好。
批处理
一次接收多个路径;目录递归发现 *.xml,通配符匹配你的现有工作流。
可追踪
每份结果写到对应的 *.o.xml,原始提示词仍是可读、可审阅的事实来源。
机制,而非魔法
扫描器把普通字符数据形成 Word atom,把完整 markup 形成 Markup atom;连续空白延迟为候选分隔符,再由相邻 atom 统一决定输出。
DATA字符数据形成 Word atom,并暂存 XML S 空白游程。
TAG标签属性引号中的 > 不会提前结束标签。
COMMENT / CDATA / PI定界结构识别各自的结束序列,内部字节原样保留。
DOCTYPE文档类型跟踪引号、注释、PI 与内部子集方括号深度。
零仪式批处理
传入任意数量的文件、目录或通配符。没有参数时,xmlsquish 会打印帮助信息。
目录会递归查找 *.xml;每个输入在相同目录生成对应的 *.o.xml。
$ cargo install --path crates/xmlsquish-cli --locked
$ xmlsquish ./prompts "templates/*.xml"
✓ 12 个文件已完成每次运行都有账
完成后汇总文件、token、字符与空白,让压缩效果可验证而非凭感觉。
示例数据仅用于展示统计界面;实际数值由你的文件决定。