【问题标题】:Replace angle brackets with XSLT用 XSLT 替换尖括号
【发布时间】:2020-05-21 11:01:12
【问题描述】:

我正在尝试在 html 页面上打印我的 XML 代码。 XML 文件由 XSLT 样式表处理。

目前我正在尝试执行以下操作:

<xsl:template name="XML">
        <pre>
          <code>
            <xsl:copy-of select="node()"></xsl:copy-of>
          </code>
        </pre>
 </xsl:template>

这很好用,但是没有显示 XML 代码,因为浏览器会解释 XML 代码的实际标记。那么有没有办法用&amp;lt;&amp;gt;替换尖括号呢?

【问题讨论】:

  • 如果您使用 XSLT 3 处理器,您可以在任何节点上使用 serialize 函数。还有针对非 XSLT 3 处理器的特定于处理器的扩展功能,还有一些复杂但经过测试的纯 XSLT 1 解决方案,例如 lenzconsulting.com/xml-to-string
  • &lt;xmp&gt; 标签可以在这里方便地替代&lt;pre&gt;。所有文档都声称它已过时且已弃用,但它对我有用...

标签: html xml xslt


【解决方案1】:

在 XSLT 3 中,您可以简单地使用 &lt;xsl:value-of select="serialize(node())"/&gt; 而不是您尝试过的 &lt;xsl:copy-of select="node()"&gt;&lt;/xsl:copy-of&gt;

对于不支持 XSLT 3 的旧 XSLT 处理器,可能有一个特定于处理器的扩展函数来序列化节点,或者您可以使用现有的、成熟的纯 XSLT 方法进行序列化,例如 https://lenzconsulting.com/xml-to-string/

【讨论】:

    猜你喜欢
    • 2015-07-30
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多