質問

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

ただし、これを使用する場合:

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

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

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

役に立ちましたか?

解決

単に<xsl:comment>タグを使用し、タグ内にコメントを含めます。

例:

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

複数のIEスタンドアロンをカスタマイズするは、このテーマに関する優れた記事です。

>

他のヒント

上記のソリューションは、条件付きコメント内のコンテンツにXSLTパラメーターが含まれていないことを前提としています。以下の例では、CSSファイルの正しい場所を提供するために処理する必要があるパラメーター$DATA_ROOT_PATHがあります。この場合、<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>

コード例は、<=> = / example の場合、次のような出力を生成します:

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

これは、IEスタイルシートを適用するための唯一の方法でした:

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top