mapper.xml中轉義
1、用轉義字元轉義
XML轉義字元
< |
< |
小於號 |
> |
> |
大於號 |
& |
& |
和 |
' |
’ |
單引號 |
" |
" |
雙引號 |
<if test="sysuserCustom.sysmc!=null and sysuserCustom.sysmc!=''"> and sysmc=#{sysuserCustom.sysmc} </if> </if> </where> )a where rownum < #{page}*#{rows})b where num >(#{page}-1)*#{rows} </select>
2、<![CDATA[文字內容]]>
什麼是CDATA
CDATA全名為character data,指不使用XML解析器解析的文字資料。在標記CDATA下,所有與XML規範衝突的關鍵字字串都被XML處理程式一視同仁地當做字元資料看待,CDATA的形式如下:
被<![CDATA[]]>
這個標記所包含的內容將表示為純文字,比如<![CDATA[<]]>
表示文字內容“<”
。
此標記用於xml文件中,我們先來看看使用轉義符的情況。我們知道,在xml中,”<”
、”>”
、”&”
等字元是不能直接存入的,否則xml語法檢查時會報錯,如果想在xml中使用這些符號,必須將其轉義為實體,如”<”
、”>”
、”&”
,這樣才能儲存進xml文件。
在使用程式讀取的時候,解析器會自動將這些實體轉換回”<”
、”>”
、”&”
。舉個例子:
<age> age < 30 </age>
上面這種寫法會報錯,應該這樣寫:
<age> age < 30 </age>
值得注意的是:
(1)轉義序列字元之間不能有空格;
(2) 轉義序列必須以”;”結束;
(3) 單獨出現的”&”不會被認為是轉義的開始;
(4) 區分大小寫。
在XML中,需要轉義的字元有:
(1)& &
(2)< <
(3)> >
(4)" "
(5)' '
但是嚴格來說,在XML中只有”<”和”&”是非法的,其它三個都是可以合法存在的,但是,把它們都進行轉義是一個好的習慣。
不管怎麼樣,轉義前的字元也好,轉義後的字元也好,都會被xml解析器解析,為了方便起見,使用<![CDATA[]]>
來包含不被xml解析器解析的內容。但要注意的是:
(1) 此部分不能再包含”]]>”
;
(2) 不允許巢狀使用;
(3)”]]>”
這部分不能包含空格或者換行。
最後,說說<![CDATA[]]>
和xml轉移字元的關係,它們兩個看起來是不是感覺功能重複了?
是的,它們的功能就是一樣的,只是應用場景和需求有些不同:
(1)<![CDATA[]]>
不能適用所有情況,轉義字元可以;
(2) 對於短字串<![CDATA[]]>
寫起來囉嗦,對於長字串轉義字元寫起來可讀性差;
(3) <![CDATA[]]>
表示xml解析器忽略解析,所以更快。
被<![CDATA[]]>
這個標記所包含的內容將表示為純文字,比如<![CDATA[<]]>
表示文字內容“<”
。
此標記用於xml文件中,我們先來看看使用轉義符的情況。我們知道,在xml中,”<”
、”>”
、”&”
等字元是不能直接存入的,否則xml語法檢查時會報錯,如果想在xml中使用這些符號,必須將其轉義為實體,如”<”
、”>”
、”&”
,這樣才能儲存進xml文件。
在使用程式讀取的時候,解析器會自動將這些實體轉換回”<”
、”>”
、”&”
。舉個例子:
<age> age < 30 </age>
上面這種寫法會報錯,應該這樣寫:
<age> age < 30 </age>
值得注意的是:
(1)轉義序列字元之間不能有空格;
(2) 轉義序列必須以”;”結束;
(3) 單獨出現的”&”不會被認為是轉義的開始;
(4) 區分大小寫。
在XML中,需要轉義的字元有:
(1)& &
(2)< <
(3)> >
(4)" "
(5)' '
但是嚴格來說,在XML中只有”<”和”&”是非法的,其它三個都是可以合法存在的,但是,把它們都進行轉義是一個好的習慣。
不管怎麼樣,轉義前的字元也好,轉義後的字元也好,都會被xml解析器解析,為了方便起見,使用<![CDATA[]]>
來包含不被xml解析器解析的內容。但要注意的是:
(1) 此部分不能再包含”]]>”
;
(2) 不允許巢狀使用;
(3)”]]>”
這部分不能包含空格或者換行。
最後,說說<![CDATA[]]>
和xml轉移字元的關係,它們兩個看起來是不是感覺功能重複了?
是的,它們的功能就是一樣的,只是應用場景和需求有些不同:
(1)<![CDATA[]]>
不能適用所有情況,轉義字元可以;
(2) 對於短字串<![CDATA[]]>
寫起來囉嗦,對於長字串轉義字元寫起來可讀性差;
(3) <![CDATA[]]>
表示xml解析器忽略解析,所以更快。