javascript语句中的CDATA标签的意义

在项目开发过程中,我们经常会使用到html和xml,同时我们也需要在页面中写一些javascript脚本,这个时候我们都会使用

<script>
    ...code...
</script>

或者

<script>
<![CDATA[
    ...code...
]]>
</script>

前者我就不需要多说了,现在就说说第二种使用在xml中的脚本。

当我们书写js脚本的时候,会判断当前的页面是那种类型,如果是xml,那我们在编写js的时候就必须使用上述的第二种情况了,

否则会遇到如下错误,例如:

xml中的脚本:

 <script>
                  
 function finStatementHdIdChange(e) {
        for(var i=0;i<viewModel.finStatementSource.length;i++){
            if(viewModel.finStatementSource[i].rptDate==this.value()){
                               viewModel.finData.set("roa",viewModel.finStatementSource[i].roa);
                              viewModel.finData.set("roe",viewModel.finStatementSource[i].roe);
                             viewModel.finData.set("salesGrowthRate",viewModel.finStatementSource[i].salesGrowthRate); 
                             viewModel.finData.set("repaymentRatio",viewModel.finStatementSource[i].repaymentRatio);
                            }
                        }
          }
</script>

然后再运行过程中后台会报:

很明显在解析i<viewModel.finStatementSource.length的时候报错了,因此我们这个时候就得使用:

<script>
<![CDATA[
    ...code...
]]>
</script>

方式去将js包装起来,CDATA 部分中的所有内容都会被解析器忽略,因此你在js中写的是什么,就是什么。

下面我们简单说一下转移字符:

转义字符

非法的 XML 字符必须被替换为实体引用(entity reference)。

假如您在 XML 文档中放置了一个类似 "<" 字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。因此你不能这样写:

<message>if salary < 1000 then</message>

为了避免此类错误,需要把字符 "<" 替换为实体引用,就像这样:

<message>if salary &lt; 1000 then</message>

在 XML 中有 5 个预定义的实体引用:

&lt;<小于
&gt;>大于
&amp;&和号
&apos;'省略号
&quot;"引号

注释:严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。

关于XML CDATA的介绍可以阅读官方教程

http://www.w3school.com.cn/xml/xml_cdata.asp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值