zoukankan      html  css  js  c++  java
  • CDATA为何物?

    CDATA的解释


     

      1. 术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data),XHTML也是如此。

    CDATA 部分中的所有内容都会被解析器忽略。

      2. CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束。

    CDATA 部分不能包含字符串 "]]>"。也不允许嵌套的 CDATA 部分。标记 CDATA 部分结尾的 "]]>" 不能包含空格或折行。

     

    为何要用CDATA


     

      1. 在XML或XHTML中特殊字符会被误解或不解,可是使用字符实体代码在开发者看来很难懂,所以根据CDATA的解释,可以在CDATA的部分中使用特殊字符,如小于(<)、大于(>)、和号(&)和双引号("),而不必使用它们的字符实体。

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

    实体引用(entity reference) 字符 解释
    &lt; < 小于
    &gt; > 大于
    &amp; & 和号
    &apos; ' 单引号
    &quot; " 双引号

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

       2.虽然这是正式方式,但另外一个问题是,大多数浏览器都不完全支持XHTML,所以浏览器无法识别CDATA段,即这在JavaScript中是个语法错误。以下方法便能够完美解决此问题。

    //<![CDATA[
    function compare(a,b){   if (a < b)
        alert(
    "a小于b");   else if (a>b)
        alert(
    "a大于b");   else   alert("a等于b"); } //]]>

    使用单行的JavaScript注释"//",可在不影响代码语法的情况下嵌入CDATA段,这种解决方案模仿了“对旧浏览器隐藏”代码的方法。但是,为避免CDATA的问题,最好还是用外部引入JS文件的方式。

  • 相关阅读:
    (四)STL中的算法
    (三)openssl库实现对称和非对称加密
    (十一)etcd项目
    (十二)插件之dlopen/dlsym/dlclose 加载动态链接库
    (十一)访问权限关键字publi/private/protected
    RESTful架构
    (零)TCP/IP详解综述
    (二)辗转相除法求最大公约数
    (一)简单的TcpServer
    SpringMVC异常处理
  • 原文地址:https://www.cnblogs.com/lishaofei/p/4900174.html
Copyright © 2011-2022 走看看