Я уверен, что в вашем XSLT нет ничего подобного:
<xsl:template match="content">
<xsl:value-of select="." disable-output-escaping="yes" />
</xsl:template>
XSLT прекрасно понимает CDATA. Точнее - он вообще не связан с CDATA, это задача базового синтаксического анализатора XML DOM, который делает из него текстовое значение.
С точки зрения XSLT нет способа узнать, является ли строка
"<div>bla & bla</div>"
вышло из
<xml><div>bla &amp; bla</div></div>
или
<xml><![CDATA[<div>bla & bla</div>]]></div>
CDATA - просто удобство сериализации. Результирующий набор информации / DOM тот же . И если вы не отключите экранирование выходных данных, XSLT правильно выдаст следующее значение из приведенной выше строки:
<div>bla &amp; bla</div>
Что является причиной того, что вы видите HTML-код на отображаемой странице.