显示 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;">
<<xsl:text>![CDATA</xsl:text><xsl:text>[</xsl:text><xsl:value-of select="custom-xml"/><xsl:text>]]</xsl:text>>
</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"/>
,效果非常好。 :)
有没有办法使用 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;">
<<xsl:text>![CDATA</xsl:text><xsl:text>[</xsl:text><xsl:value-of select="custom-xml"/><xsl:text>]]</xsl:text>>
</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"/>
,效果非常好。 :)