Создание условных комментариев с помощью XSLT?

Я хочу создать условные комментарии в XSLT.

Но когда я использую это:

<!-- [If IE7] [endif] -->

в <xsl:comment>, XSLT удаляет его из вывода, когда он отображается.

Есть ли способ создать условные комментарии в XSLT?

Ответ 2

В приведенном выше решении предполагается, что содержимое внутри условного комментария не содержит параметров XSLT. В приведенном ниже примере у нас есть параметр $DATA_ROOT_PATH, который должен быть обработан, чтобы дать нам правильное расположение файла CSS. В этом случае <xsl:comment/> не подходит. Мы должны использовать <xsl:text/> и отключить выходное экранирование.

Пример здесь будет содержать файл CSS, только если мы используем IE7.

<xsl:text disable-output-escaping="yes">&lt;!--[if IE 7]&gt;</xsl:text>
  <link rel="stylesheet" type="text/css" href="{$DATA_ROOT_PATH}/resources/css/ie7.css" media="screen"/>
<xsl:text disable-output-escaping="yes">&lt;![endif]--&gt;</xsl:text>

Пример кода будет генерировать вывод, например, если $DATA_ROOT_PATH =/example:

<!--[if IE 7]>
  <link rel="stylesheet" type="text/css"
        href="/example/resources/css/ie7.css"
        media="screen" />
<![endif]-->

Ответ 3

Это был единственный способ, которым я смог применить мою таблицу стилей:

    <xsl:comment>[if IE]>
      &lt;link rel="stylesheet" type="text/css" href="ie.css" />
      &lt;![endif]</xsl:comment>

Мне нужно было убедиться, что между моим текстом и ярлыками открытия/закрытия комментариев xsl: нет: