如何用XSLT生成文本文件而不是XML/HTML

12次阅读

XSLT生成纯文本的关键是设置,并避免xml/html结构;需用控制空白、禁用默认模板输出、显式处理换行与编码

如何用XSLT生成文本文件而不是XML/HTML

用XSLT生成纯文本文件,关键在于设置输出方法为 text,并避免生成任何XML/HTML结构(如开始标签、结束标签、属性、命名空间等)。默认情况下XSLT处理器会以XML方式序列化结果,必须显式声明文本输出行为。

设置 output method=”text”

样式表的顶层 元素中指定 method="text",这是最核心的一步。它告诉处理器:不要添加XML声明、不转义特殊字符(如 &)、不自动缩进、不补全标签。

示例:

避免使用 HTML/XML 输出惯用写法

生成文本时需特别注意以下常见陷阱:

立即学习前端免费学习笔记(深入)”;

  • 不要用 或字面量标签(如
    ),它们会产生标记;

  • 不要依赖 默认行为——若模板匹配元素节点且未定义文本处理逻辑,可能意外输出子元素名或混合内容;
  • 慎用 separator 属性(XSLT 2.0+)——它只对节点集有效,但若节点含子元素,仍可能触发默认规则;
  • 显式插入换行、空格、制表符等不可见字符,例如 表示换行。
  • 控制空白与换行

    XML源中的空白可能被保留并输出,影响文本格式。建议:

    • 移除所有元素间的无关空白;
    • 对需要保留缩进或空行的模板,用 精确控制;
    • 避免在模板中写多行字面文本(如

      第一行 第二行

      ),因为XSLT解析器可能规范化换行符;改用 分段。

    处理特殊字符与编码

    文本输出不自动转义,所以直接输出 & 是安全的——但前提是你的数据本身不含非法字符(如控制字符)。需注意:

    • 确保 与目标系统兼容(如 windows 记事本常需 UTF-8 with bom,可用处理器扩展或后处理添加);
    • 若需输出制表符,写 ,而非字面 t(XSLT不识别反斜杠转义);
    • 字符串拼接用 更可靠,避免隐式空格合并。
text=ZqhQzanResources