显示 XML - tags/nodes 的块及其内容 - 使用 XSLT(用于语法突出显示)

Displaying a block of XML - tags/nodes and its content - using XSLT (for Syntax Highlighting)

有没有办法使用 XSLT 显示 XML 块 - 节点和所有节点?我们正在构建一个允许我们使用语法高亮显示原始代码的站点。唯一的问题是,我们的 CMS 生成了 XML,而放置在该网站 CMS 中的一些代码是 XML,因此它将本应是原始的 XML 与网站的生成 XML.

这是 XML 片段:

<custom-xml>
    <menu-item>
        <title>Home</title>
        <link-type>Cascade Page</link-type>
        <page type="page">
            <content/>
        </page>
        <external-url/>
        <new-window/>
        <alignment>left</alignment>
    </menu-item>
    <menu-item>
        <title>Twitter</title>
        <link-type>External URL</link-type>
        <page>
            <path>/</path>
        </page>
        <external-url>http://twitter.com</external-url>
        <new-window/>
        <alignment>right</alignment>
    </menu-item>
</custom-xml>

<custom-xml> 标签内(但不包括)的所有内容都需要打印。

这是我试过的 XSLT:

<xsl:when test="text-type = 'XML'">
    <div>
        <pre class="brush: xml;">
                <xsl:value-of select="custom-xml"/>
        </pre>
    </div>
</xsl:when>

我什至尝试发挥创意:

<xsl:when test="text-type = 'XML'">
    <div>
        <pre class="brush: xml;">
                &lt;<xsl:text>![CDATA</xsl:text><xsl:text>[</xsl:text><xsl:value-of select="custom-xml"/><xsl:text>]]</xsl:text>&gt;
        </pre>
    </div>
</xsl:when>

...这是我想要的输出:

<div>
    <pre class="brush: xml;">
        <menu-item>
            <title>Home</title>
            <link-type>Cascade Page</link-type>
            <page type="page">
                <content/>
            </page>
            <external-url/>
            <new-window/>
            <alignment>left</alignment>
        </menu-item>
        <menu-item>
            <title>Twitter</title>
            <link-type>External URL</link-type>
            <page>
                <path>/</path>
            </page>
            <external-url>http://twitter.com</external-url>
            <new-window/>
            <alignment>right</alignment>
        </menu-item>
    </pre>
</div>

能够弄明白...看到这个 post:

我用 <xsl:copy-of select="custom-xml/node()"/> 替换了 <xsl:value-of select="custom-xml"/>,效果非常好。 :)