我可以在VS 2010 HTML代码段中包含CDATA部分吗?

时间:2010-12-16 15:51:19

标签: xml visual-studio-2010 code-snippets

在VS 2010中使用HTML代码段“脚本”时,我得到:

<script type="text/javascript"> </script>

我希望该代码段能够呈现以下结果:

<script type="text/javascript">
//<![CDATA[

//]]>
</script>

我已经查看了.snippet文件并找到了以下“Code”元素:

    <Code Language="html"><![CDATA[<script type="text/javascript">$selected$$end$</script>]]></Code>

并且我意识到让它工作可能有点棘手,即这不会:

<Code Language="html"><![CDATA[<script type="text/javascript">
//<![CDATA[
$selected$$end$
//]]>
</script>]]></Code>

有没有比我更多XML知识的人知道这是否可行?

3 个答案:

答案 0 :(得分:2)

我在你的代码片段中找到了你正在寻找的解决方案。

  

&lt; Code Language =“html”&gt;

     

&lt;![CDATA [&lt; script type =“text / javascript”&gt;
  &LT;![CDATA [
     $ $选择]] $结束$&GT;
  &LT; /脚本&GT;]]&GT;

     

&LT; /代码&GT;

答案 1 :(得分:0)

来自w3schoolsNested CDATA sections are not allowed.

但这是一个有趣的问题。

修改 以下内容适用于xml(代码段)方面,但我不确定浏览器将如何解释结果:

<Code Language="html"><![CDATA[<script type="text/javascript">
    //<![CDATA[
        $selected$$end$
    //]]/>
</script>]]></Code>

(注意关闭插入符号之前的斜线)

这将产生以下输出:

<script type="text/javascript">
//<![CDATA[

//]]/>
</script>

这可能是你想要试验的东西;正如我所说,我不确定最终会如何对待它。

答案 2 :(得分:0)

为了在VS片段代码元素中呈现CDATA部分,您需要放弃通常使用的Code元素的CDATA部分并转义整个内容。如果您尝试仅对第一部分进行编码,则代码段引擎会识别第一个未转义的CDATA部分,并且不会对其进行渲染。

在您的情况下,代码段代码元素应如下所示(假设您定义了$ script $参数):

<Code Language="html">
    &lt;script type=&quot;text/javascript&quot;&gt;
    //&lt;![CDATA[
      $script$
    //]]&gt;
    &lt;/script&gt;
</Code>

这将产生以下结果

<script type="text/javascript">
    //<![CDATA[
        script goes here
    //]]>
</script>