在XSL转换期间在字符串中保留注释符号

时间:2014-02-03 16:56:32

标签: javascript xml xslt

我的xsl文件中有以下代码

<script type="text/javascript">
    var div = document.createElement("div");
    div.innerHTML = "<!--[if lt IE 9]><i></i><![endif]-->";
</script>

转换后我变空div.innerHTML

<script type="text/javascript">
    var div = document.createElement("div");
    div.innerHTML = "";
</script>

如何在输出html文件中保留<!--[if lt IE 9]><i></i><![endif]-->

2 个答案:

答案 0 :(得分:0)

您可以尝试简单地将<字符与<xsl:text>块一起编码:

<script type="text/javascript">
<xsl:text disable-output-escaping="yes">
    var div = document.createElement("div");
    div.innerHTML = "&lt;!--[if lt IE 9]><i></i>&lt;![endif]-->";
</xsl:text>
</script>

或使用CDATA块:

<script type="text/javascript">
<xsl:text disable-output-escaping="yes">
<![CDATA[
    var div = document.createElement("div");
    div.innerHTML = "<!--[if lt IE 9]><i></i><![endif]-->";
]]>
</xsl:text>
</script>

或许您甚至可以使用<xsl:comment>节点,例如

<script type="text/javascript">
    var div = document.createElement("div");
    div.innerHTML = "<xsl:comment><xsl:call-template name="iecc"/></xsl:comment>";
</script>

<xsl:template name="iecc">[if lt IE 9]>&lt;i>&lt;/i>&lt;![endif]</xsl:template>

答案 1 :(得分:0)

好的,我找到了solution。我必须同时使用CDATA<xsl:comment>

<script type="text/javascript">
    var div = document.createElement("div");
    div.innerHTML = "<xsl:comment><![CDATA[ [if lt IE 9]><i></i><![endif] ]]></xsl:comment>";
</script>