12

XSLTで条件付きコメントを作成したい。

しかし、私がこれを使用するとき:

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

<xsl:comment>、XSLTはレンダリング時に出力から削除します。

XSLTで条件付きコメントを作成する方法はありますか?

4

3 に答える 3

22

<xsl:comment>タグを使用して、タグ内にコメントを含めるだけです。

例えば:

<xsl:if test="@id = '1'">
  <xsl:comment>
    <![CDATA[[if IE]><![endif]]]>
  </xsl:comment>
</xsl:if>

複数のIEスタンドアロンを使いこなすのは、このテーマに関するすばらしい記事です。

于 2009-05-02T06:11:50.880 に答える
6

上記の解決策は、条件付きコメント内のコンテンツにXSLTパラメーターが含まれていないことを前提としています。$DATA_ROOT_PATH以下の例では、CSSファイルの正しい場所を提供するために処理する必要のあるパラメーターがあります。この場合<xsl:comment/>は適切ではありません。<xsl:text/>出力エスケープを使用して無効にする必要があります。

ここでの例には、IE7を使用している場合にのみCSSファイルが含まれます。

<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>

コード例では、次のような出力が生成されますif $DATA_ROOT_PATH= / example

<!--[if IE 7]>
  <link rel="stylesheet" type="text/css"
        href="/example/resources/css/ie7.css"
        media="screen" />
<![endif]-->
于 2010-10-07T13:15:07.617 に答える
0

これが、自分のieスタイルシートを適用することができた唯一の方法でした。

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

テキストとxsl:commentの開始/終了タグの間にスペースがないことを確認する必要がありました

于 2013-09-11T18:38:49.267 に答える