【问题标题】:How do I select all comment nodes in an XML file?如何选择 XML 文件中的所有注释节点?
【发布时间】:2010-10-01 07:15:38
【问题描述】:

简单的问题。我有一个包含几十个注释块的 XML 文件。这是由样式表转换以生成 HTML 页面。但是,cmets 被忽略了。 但是在生成的 HTML 的底部,我希望有一个 XML 文件中所有 cmets 的列表。如果不使用纯 XSLT 以外的任何其他东西,这是否可能? (没有 Javascript 或其他任何东西!)


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

【问题讨论】:

    标签: xslt xslt-1.0


    【解决方案1】:

    没有处理 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>
    

    【讨论】:

    • 我正要给出相同的答案....尽管您可以使用 xsl:comment 元素(而不是 li 在您的示例中),如果您仍想将原始 XML 注释输出为 HTML 中的注释。
    • @Tim C:再读一遍我的答案,我想你漏了一行! ;)
    猜你喜欢
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多