Есть ли способ отобразить блок XML - узлы и все остальное - с помощью XSLT? Мы создаем сайт, который позволяет нам отображать необработанный код с помощью Syntax Highlighter. Единственная проблема заключается в том, что наша 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>