Check the XSLT has:
<xsl:output method="html"/>
edit: explanation from comments
By default XSLT outputs as XML(1) which means it will escape any significant characters. You can override this in specific instances with the attribute disable-output-escaping="yes"
(intro here) but much more powerful is to change the output to the explicit value of HTML which confides same benefit globally, as the following:
- For script and style elements, replace any escaped characters (such
as & and >) with their actual values
(& and >, respectively).
- For attributes, replace any occurrences of > with >.
- Write empty elements such as
<br>
, <img>
, and <input>
without
closing tags or slashes.
- Write attributes that convey information by their presence as
opposed to their value, such as
checked and selected, in minimized
form.
from a solid IBM article covering the subject, more recent coverage from stylusstudio here
If HTML output is what you desire HTML output is what you should specify.
(1) There is actually corner case where output defaults to HTML, but I don't think it's universal and it's kind of obtuse to depend on it.