XSLT中用<xsl:comment>创建XML注释节点,语法为容器元素,支持静态文本与动态指令(如<xsl:value-of>),不可嵌套,需在模板内使用,内容特殊字符自动转义。

在XSLT中,用 <xsl:comment> 元素创建XML注释节点,它会原样输出为 <!-- ... -->。
基本语法
<xsl:comment> 是一个空元素或容器元素,内容可以是纯文本、其他XSLT指令(如 <xsl:value-of>、<xsl:for-each> 等),但不能嵌套另一个 <xsl:comment>。
- 最简写法(静态注释):
<xsl:comment>Generated by XSLT on 2024-05-20</xsl:comment> - 动态内容(推荐):
<xsl:comment>Processing <xsl:value-of select="name()"/> element</xsl:comment>
常见使用场景
注释常用于调试、生成可读性更强的输出HTML/XML,或满足某些工具对注释的格式要求。
- 在HTML输出中添加生成说明:
<xsl:comment>This page was transformed using XSLT v2.0</xsl:comment> - 标注当前处理的节点信息:
<xsl:comment>Start of <xsl:value-of select="local-name()"/> section</xsl:comment> - 配合条件逻辑输出注释:
<xsl:if test="@debug='true'><xsl:comment>Debug mode enabled</xsl:comment></xsl:if>
注意事项
<xsl:comment> 本身不产生任何输出内容(除了注释),也不会影响匹配模板的执行流程。
- 内容中的特殊字符(如
--、>)会被自动转义,避免破坏注释结构。例如:
<xsl:comment>Note: this contains -- and ></xsl:comment>
输出为:<!--Note: this contains -- and >-->(XSLT处理器会确保合法) - 不能出现在顶层(即根元素外),必须位于模板规则(
<xsl:template>)或其他可生成结果树的上下文中。 - XSLT 1.0 和 2.0/3.0 中语法一致,行为相同。
基本上就这些。用好 <xsl:comment> 能让输出更清晰,也方便后期排查转换逻辑。










