【发布时间】:2010-10-01 07:15:38
【问题描述】:
简单的问题。我有一个包含几十个注释块的 XML 文件。这是由样式表转换以生成 HTML 页面。但是,cmets 被忽略了。 但是在生成的 HTML 的底部,我希望有一个 XML 文件中所有 cmets 的列表。如果不使用纯 XSLT 以外的任何其他东西,这是否可能? (没有 Javascript 或其他任何东西!)
据我所知,这是不可能的,但我可能是错的......
【问题讨论】:
简单的问题。我有一个包含几十个注释块的 XML 文件。这是由样式表转换以生成 HTML 页面。但是,cmets 被忽略了。 但是在生成的 HTML 的底部,我希望有一个 XML 文件中所有 cmets 的列表。如果不使用纯 XSLT 以外的任何其他东西,这是否可能? (没有 Javascript 或其他任何东西!)
据我所知,这是不可能的,但我可能是错的......
【问题讨论】:
没有处理 cmets 的原因是 cmets 的默认模板什么都不做:
<xsl:template match="processing-instruction()|comment()"/>
见XSLT 1.0 spec "Built-in Template Rules"。
如果您想用 cmets 做其他事情,您可以创建自己的匹配模板,然后使用 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>
【讨论】: