XSLT生成纯文本的关键是设置并禁用自动格式化:需指定method="text"、indent="no"、encoding="UTF-8",用和直出内容,配合及紧凑模板写法控制空白。
用 XSLT 生成纯文本文件,关键在于正确设置 ,并避免 XML/HTML 默认的格式化行为(如自动缩进、添加声明、转义特殊字符等)。
在样式表根元素内添加输出声明,明确告诉处理器你想要纯文本:
—— 最简必要配置indent="no" 防止 XSLT 处理器(尤其是某些支持 HTML 模式的处理器)自动插入空格或换行media-type="text/plain"(非必需,但部分环境更稳妥)使用 和 直接拼接内容,不包裹任何标签:
Hello, !
—— 这会输出字面的 `` 标签,不是你想要的纯文本
显式插入换行符(
是 Unicode 换行符)XSLT 默认会保留模板中写的空白(包括换行和缩进),这在 te

上加属性:exclude-result-prefixes="#all"(可选,但整洁) 去掉源 XML 中无关空白(对输入有效) 包裹所有显式空白,例如:Name:
Age:
这些小细节常导致输出“看起来像 XML”或“多出空行”:
indent="no" → 处理器可能自动缩进内容(尤其用 Saxon 或 oXygen 时) 包裹 → 那个换行会被当作文本节点输出 或未匹配模板 → 可能输出原始 XML 字符(如 zuojiankuohaophpcn)而非预期文本encoding="ISO-8859-1")→ 出现乱码基本上就这些。只要 method 设对、空白控住、内容直出,XSLT 生成文本文件很干净利落。