用XSLT生成纯文本需设method="text"并显式声明,配合strip-space、避免模板空白、用xsl:text控格式;示例CSV输出每行严格两列无标签。

用 XSLT 生成纯文本文件,核心是设置 output method="text",并确保模板中只输出文本内容(不产生标签、空格、换行等意外字符)。
正确声明输出方法
在 XSLT 根元素 或 内,必须显式声明:
注意:
• method="text" 关闭 HTML/XML 序列化逻辑,避免转义、自动闭合、DOCTYPE 等行为;
• 显式指定 encoding(如 UTF-8)可防止中文乱码;
• 不要同时设置 indent="yes"(对 text 无效,且部分处理器会警告)。
控制输出内容:只写文本,不写标签
XSLT 默认会把源 XML 中的文本节点、空白、标签结构都参与处理。生成纯文本时需主动抑制无关内容:
本文档主要讲述的是maven使用方法;Maven是基于项目对象模型的(pom),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven将你的注意力从昨夜基层转移到项目管理层。Maven项目已经能够知道 如何构建和捆绑代码,运行测试,生成文档并宿主项目网页。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
- 用
忽略源文档所有元素间的空白文本节点; - 避免在模板中写未包裹的换行或缩进(例如模板内直接回车会输出换行符);
- 用
精确控制换行、制表符、空格等格式字符; - 慎用
—— 若未定义匹配模板,可能输出意外文本(如默认规则会输出所有子文本)。
典型文本输出示例:生成 CSV 行
假设输入 XML 是一组人员信息,想导出为逗号分隔的纯文本:
说明:
• 安全插入换行(
是 LF 字符),避免因模板换行引入不可控空白;
• 没有 ,所以不会透传源文档中多余的空白;
• 输出结果是严格两列、每行一条记录的纯文本,无 XML 声明、无标签、无额外空行。
调试技巧:检查实际输出字节
文本输出容易被隐藏字符干扰(如 BOM、CR/LF 差异、零宽空格)。建议:
- 用十六进制编辑器(如 HxD、xxd)查看生成文件的真实字节;
- 在命令行用
file -i output.txt或hexdump -C output.txt | head验证编码和开头字符; - 若出现 BOM,可在
中加omit-xml-declaration="yes"(虽对 text 无 XML 声明,但某些处理器仍可能加 BOM,此时可尝试设byte-order-mark="no",XSLT 2.0+ 支持)。









