Internet explorer 使用XSLT创建条件注释?
我想在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
<!-- [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"><!--[if IE 7]></xsl:text>
<link rel="stylesheet" type="text/css" href="{$DATA_ROOT_PATH}/resources/css/ie7.css" media="screen"/>
<xsl:text disable-output-escaping="yes"><![endif]--></xsl:text>
这是我能够应用ie样式表的唯一方法:
<xsl:comment>[if IE]>
<link rel="stylesheet" type="text/css" href="ie.css" />
<![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]>
<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]</xsl:comment>