Добавление комментария в html-вывод из xslt-шаблонизатора
Материал из Umicms
Версия от 08:54, 8 сентября 2011; Cmac (обсуждение | вклад)
Задача
Добавить в html-код комментарий при использовании XSLT-шаблонизатора. Часто подобная необходимость возникает при использовании хаков для браузеров IE.
Решение
Для добавления комментариев, которые будут добавлены в html код, в XSLT существует специальный тег:
<xsl:comment> этот комментарий в html </xsl:comment>
В html будет отображено:
<!-- этот комментарий в html -->
Комбинируя xsl-теги можно произвести вывод следующего комментария:
<!--[if IE 6]>
<script type="text/javascript" src="/js/ie_png.js"></script>
<script type="text/javascript">
ie_png.fix('.png, img');
ie_png.fix('.png, input');
ie_png.fix('.png, div');
</script>
<![endif]-->
В xsl шаблон необходимо добавить:
<xsl:comment>
<xsl:text>[if IE 6]></xsl:text>
<script type="text/javascript" src="/js/ie_png.js"></script>
<script type="text/javascript">
ie_png.fix('.png, img');
ie_png.fix('.png, input');
ie_png.fix('.png, div');
</script>
<xsl:text><![endif]</xsl:text>
</xsl:comment>
Для вывода [if IE 6] используем тег <xsl:text>, в строке <[endif] заменяем символ < на сущность & lt;. Рекомендуем изменять все символы >, < и тд на соответствующие html-сущности.
Еще один вариант добавления хака для IE:
<xsl:comment>
<![CDATA[
[if lt IE 8]>
<link type="text/css" rel="stylesheet" href="/css/style_ie.css" />
<![endif]
]]>
</xsl:comment>