如何选择XML文件中的所有注释节点?

Wim*_*ink 4 xslt xslt-1.0

简单的问题.我有一个带有几十个注释块的XML文件.这是由样式表转换为生成HTML页面.但是,这些注释会被忽略.但是在生成的HTML的底部,我想要一个XML文件中所有注释的列表.这是不可能的,没有使用纯XSLT以外的任何东西?(没有Javascript或其他!)


据我所知,这是不可能的,但我可能是错的......

Per*_*r T 10

未处理注释的原因是注释的默认模板不执行任何操作:

<xsl:template match="processing-instruction()|comment()"/>
Run Code Online (Sandbox Code Playgroud)

请参阅XSLT 1.0规范"内置模板规则".

如果您想对注释执行其他操作,您可以创建自己的匹配模板,并将其作为新的XML注释输出xsl:comment或使用HTML列表:

<xsl:template match="/">
  <ul>
    <xsl:apply-templates select="//comment()"/>
  </ul>
</xsl:template>

<xsl:template match="comment()">
  <li>
    <xsl:value-of select="."/>
  </li>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

  • 我正准备给出相同的答案....你可能想提一下虽然你可以使用**xsl:comment**元素(而不是你的例子中的**li**),如果你还想输出原始XML注释作为HTML中的注释. (2认同)