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

时间:2010-10-01 07:15:39

标签: xslt xslt-1.0

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


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

1 个答案:

答案 0 :(得分:10)

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

<xsl:template match="processing-instruction()|comment()"/>

请参阅XSLT 1.0 spec "Built-in Template Rules"

如果您想对评论做其他事情,您可以创建自己的匹配模板,并使用xsl:comment将其作为新的XML评论输出或制作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>