<![CDATA[ ]]>
如果要求借助 mybatis 在XML文件中寫出分數小於72分的學生姓名,那麼XML文件中相應的SQL語句爲:
SELECT `name` FROM student_score_table <![CDATA[ WHERE score < 72 ]]>
非
SELECT `name` FROM student_score_table WHERE score < 72
爲什麼第二種方式不對呢?因爲小於號在XML文件中被識別爲標籤的開頭部分,更直白的說,小於號已經被XML規範認定爲了“關鍵字字符”,這個時候如果堅持使用小於號就需要對其進行必要的轉義,言盡於此,想必你已經猜到“<![CDATA[ ]]>”的作用了——規避與XML規範衝突的字符。
什麼是CDATA
CDATA全名爲character data,指不使用XML解析器解析的文本數據。在標記CDATA下,所有與XML規範衝突的關鍵字字符串都被XML處理程序一視同仁地當做字符數據看待,CDATA的形式如下:
1、<![CDATA[文本內容]]>
2、其中文本內容中不能出現字符串“]]>”,另外CDATA不能嵌套。