[xsl] rendering xml fragment tree as syntax highlighted HTML

Subject: [xsl] rendering xml fragment tree as syntax highlighted HTML
From: Christiane Fritze <fritze@xxxxxxx>
Date: Fri, 12 Jan 2007 16:40:57 +0100
Hi all,

I want to copy a fragment tree from my source xml document using
<xsl:copy-of/> to the result html document.
This xml fragment should be rendered als well known code2html tools does
it for perl code etc.
It means at least all < and > have to be transformed into &lt; and &gt;

But how I have to handle my <xsl:copy-of> fragment to get the wanted result?


<!-- my XML -->


<?xml version="1.0" encoding="UTF-8"?>
<div0>
<entry key="Capriccio">
<form>
<orth>Capriccio</orth>
</form>
<sense>
<gramGrp>n.</gramGrp> virtuoses, einfallsreiches <seg
function="Mu|sikst">Musikst</seg>
<lb/> ueck, Uebernahme (18. Jh.) von gleichbed.<lb/> ital. <hi
rend="i">capriccio</hi>,
eigentl. <def>Laune, Grille, <seg function="Ein|fall">Einfall</seg>
<lb/> </def>; s. <hi rend="i">Kaprice</hi>.<lb/>
</sense>
</entry>
</div0>


<!-- my XSL -->


?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="2.0">
<xsl:output method="html" media-type="text/html"/>
<xsl:template match="div0">
<html>
<title>show XML tree</title>
<body>
<xsl:apply-templates mode="rendered"/>
<hr />
<xsl:apply-templates mode="structured"/>
</body>
</html>
</xsl:template>

<!-- rendering as a dictionary like layout -->
<xsl:template match="entry" mode="rendered">
<!-- some code, works fine -->
</xsl:template>

<!-- show the user the original xml code -->
<xsl:template match="entry" mode="structured">
<xsl:copy-of select="."/>
<tt>
<!-- ?? HOW to handle this result tree so that it can be shown in html? -->
</tt>
</xsl:template>
</xsl:stylesheet>


<!-- WANTED OUTPUT -->


<html>
<title>show XML tree</title>
<body>
<!-- some dictionary like rendered output -->
<tt>
&lt;entry key="Capriccio"&gt;<br />
&lt;form&gt;<br />
&lt;orth&gt;Capriccio&lt;/orth&gt;<br />
&lt;/form&gt;<br />
&lt;sense&gt;<br />
&lt;gramGrp&gt;n.&lt;/gramGrp&gt; virtuoses, einfallsreiches &lt;seg
function="Mu|sikst"&gt;Musikst&lt;/seg&gt;<br />
&lt;lb/&gt; ueck, Uebernahme (18. Jh.) von gleichbed.&lt;lb/&gt; ital.
&lt;hi rend="i"&gt;capriccio&lt;/hi&gt;,<br />
eigentl. &lt;def&gt;Laune, Grille, &lt;seg
function="Ein|fall"&gt;Einfall&lt;/seg&gt;<br />
&lt;lb/&gt; &lt;/def&gt;; s. &lt;hi
rend="i"&gt;Kaprice&lt;/hi&gt;.&lt;lb/&gt;<br />
&lt;/sense&gt;<br />
&lt;/entry&gt;<br />
</tt>
</body>
</html>

If the shown xml code is somehow colored it would be perfect.

Many thanks for any hint,

Regards,
Christiane

Current Thread