Добавление комментария в html-вывод из xslt-шаблонизатора

Материал из Umicms
Перейти к:навигация, поиск

Задача

Добавить в 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>&lt;![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>