Re: [xsl] Need help rendering the HTML residing within the XML

Subject: Re: [xsl] Need help rendering the HTML residing within the XML
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Thu, 12 Aug 2004 14:02:25 +0100
Hi Jeremy,

> I need my XSL file to parse the XML so that the browser (IE 6+, NN
> 7+) will take these <b></b> tags and apply the appropiate HTML
> formatting rather than treating them as XML nodes.

Make sure that you've designed your stylesheet to use
<xsl:apply-templates> rather than <xsl:value-of>. For example, you
should have a template like:

<xsl:template match="name">
  ...
  <xsl:apply-templates />
  ...
</xsl:template>

Given that, all you need to do is add a template that copies <b>
elements (and other HTML elements) into the output:

<xsl:template match="b">
  <b><xsl:apply-templates /></b>
</xsl:template>

Note that you should apply templates to the content of the <b>
elements in case they contain other elements nested inside them that
you also want to copy.

You *could* place the HTML elements in a separate namespace, but
there's no need to.

> The browser seems to like character entity equivalents such as in
> line 2 below and renders the <name> node in bold when I have
> disable-output-escaping set to "yes".

Don't do it this way. It's ugly, might not work in all processing
environments, and there's a much better and simpler way (above) that
doesn't require any change to the source.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/

Current Thread