Internet explorer 使用XSLT创建条件注释?

Internet explorer 使用XSLT创建条件注释?,internet-explorer,xslt,conditional-comments,Internet Explorer,Xslt,Conditional Comments,我想在XSLT中创建 但当我使用这个: <!-- [If IE7] [endif] --> 在中,XSLT在呈现时将其从输出中删除 有没有办法在XSLT中创建条件注释?只需使用标记并将注释包含在标记中即可 例如: <xsl:if test="@id = '1'"> <xsl:comment> <![CDATA[[if IE]><![endif]]]> </xsl:comment> </xsl:if

我想在XSLT中创建

但当我使用这个:

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

中,XSLT在呈现时将其从输出中删除

有没有办法在XSLT中创建条件注释?

只需使用
标记并将注释包含在标记中即可

例如:

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


这是一篇关于这个主题的好文章。

上述解决方案假设条件注释中的内容不包含任何XSLT参数。在下面的示例中,我们有一个参数
$DATA\u ROOT\u PATH
,应该对该参数进行处理,以便为我们提供CSS文件的正确位置。在这种情况下,
不适用。我们必须使用
并禁用输出转义

这里的示例仅在使用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>

这是我能够应用ie样式表的唯一方法:

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

我必须确保我的文本和xsl:comment开始/结束标记之间没有空格

yes。。它有效:)为什么使用第一行代码?这个我认为你需要有条件地包含评论!我的投票/接受票在哪里?!;-)增加表决权。;-)无条件地包含条件注释。但是IE将注释作为一个条件进行计算——如果它的计算结果为true,则将执行注释中的代码。如何在注释中获取动态值您写道“不合适”,但它是根据:“
”这意味着您可以使用
xsl:comment
指令中的任何内容模板,只要它只输出文本节点即可。当您需要进一步处理条件注释的内容时,这是一个非常有效的方案。但是结尾标记有一个输入错误:endif后面有两个额外的
]
字符。正确地说:
![endif]--
    <xsl:comment>[if IE]>
      &lt;link rel="stylesheet" type="text/css" href="ie.css" />
      &lt;![endif]</xsl:comment>