今天看系统的部分代码,看到了某个xml里面的一段,写在sql语句里的:

    1. <![CDATA[WHERE timestampdiff(DAY, he.join_date, CURDATE()) <= 30]]>

    之前没见过这种写法,以为是sql语句的高阶用法,查阅资料得知:

    在xml中,”<”、”>”、”&”等字符是不能直接存入的,否则xml语法检查时会报错,如果想在xml中使用这些符号,必须将其转义为实体,如”<”、”>”、”&”,这样才能保存进xml文档。

    在使用程序读取的时候,解析器会自动将这些实体转换回”<””>””&”。举个例子:
      <age> age < 30 </age>
      上面这种写法会报错,应该这样写
      <age> age < 30 </age>
      值得注意的是:
      (1)转义序列字符之间不能有空格;
      (2) 转义序列必须以”;”结束;
      (3) 单独出现的”&”不会被认为是转义的开始;
      (4) 区分大小写。

    1.   (1)&   &amp;
    2.   (2)<   &lt;
    3.   (3)>   &gt;
    4.   (4)"   &quot;
    5.   (5)'   &apos;

    CDATA 部分由 “” 结束:

    详细:https://www.cnblogs.com/ferby/p/9799164.html