1、XML中有時會用到一些特殊字符,因此在生成XML前,需要將特殊字符進行轉義,具體轉義如下圖所示(我在&後面均加入)
待轉義的字符 | 轉義字符 |
---|---|
< | < |
> | > |
& | & |
’ | ' |
‘’ | " |
2、但有時候,我們需要在XML中使用大量的特殊字符,若逐一轉義會比較折騰,此時使用XML中的CDATA段將會過濾相關內容,xml解析器會過濾CDATA段中的內容。
1)語法。< ! [ CDATA [忽略檢查的文本]]>
2)用法。
通常的做法:
<UserName>鄭林</UserName>
CDATA用法。用了CDATA段,段中的內容會被忽略檢查,無論是否包含敏感內容,都會被當成普通文本處理
<UserName><![CDATA[鄭林]]></UserName>
再來一個例子
<content>
<![ CDATA [
<script language="javascript">
function sayhello(){ alert("hello!"); }
</script>
] ] >
</content>
3、總結
CDATA段的目的就是讓xml解析器認爲內容全部爲普通文本,無需解析,這個有點類似C#中,在寫SQL語句時用到的@,相當於默認全部爲文本。例如:
string sqlStr = @" select k.item_code, k.item_name_cn
from drug_dict_data k
where k.dict_type_id = :v_dict_type_id
and k.audit_status = 4
and k.is_inuse = 1 ";
MarkDown編輯器也會識別轉義字符,會將<識別爲<。可以使用\來取消轉義