【问题标题】:Maintain HTML comments in XSLT在 XSLT 中维护 HTML 注释
【发布时间】:2016-05-02 18:41:21
【问题描述】:

基本上,我的 XSLT 中有 HTML cmets,我想保留在输出中,但 XSLT 不断删除它们。它们被完全删除。有什么办法可以保留这些cmets?

下面是一个代码示例:

<xsl:template match="/">

   <!-- Preserve This HTML Comment In Output -->
   <div><xsl:value-of select="xmlnode" /></div>

</xsl:template>

我尝试使用&lt;xsl:text&gt;&lt;xsl:comment&gt; 标签进行包装,但没有任何帮助。

【问题讨论】:

  • "我的 XSLT 中有 HTML cmets。" 不,您的 XSLT 中有 XML cmets。而且您不能“保留”它们,因为 XSLT 处理的是 XML 输入,而不是它本身(尽管理论上您可以从 XSLT 文档中复制注释节点 - 但我不建议这样做)。
  • 感谢您的澄清/它帮助我了解发生了什么。

标签: html xml xslt xslt-1.0


【解决方案1】:

您不能保留评论,但您可以在输出中生成它们:

  <xsl:comment>This is a comment!</xsl:comment> 

所以试试

<xsl:template match="/">
   <!-- Preserve This HTML Comment In Output -->
  <xsl:comment>Preserve This HTML Comment In Output</xsl:comment> 
  <div><xsl:value-of select="xmlnode" /></div>
</xsl:template>

【讨论】:

  • 明白了,你是说没有办法使用 XSLT 输出 HTML cmets?
  • xlst 中的任何 cmets 永远不会出现在输出中。但是你可以在输出中生成 cmets。
  • 这行不通有什么原因吗?它没有通过。
  • 它正在工作。无需详细说明,这是我的代码。现场感谢!
  • @hr_117:不是由 XSLT 解析器自行决定将 cmets 作为显式节点 comment() 传递吗?我敢肯定 W3C 在某处提到过这一点(而且,从记忆中,也说过不应该指望它)。
猜你喜欢
  • 1970-01-01
  • 2013-10-17
  • 2021-03-01
  • 1970-01-01
  • 2020-10-10
  • 2015-07-02
  • 1970-01-01
  • 2018-12-16
  • 2014-10-11
相关资源
最近更新 更多