使用 標識 使內容不被XML解析
阿新 • • 發佈:2019-02-02
看下面一段XML,其目的在於得到表示式
settlementDateBeg<=settlement_date<=settlementDateEnd
<if test="null!=req.settlementDateBeg and ''!=req.settlementDateBeg"> and settlement_date <![CDATA[>=]]>#{req.settlementDateBeg} </if> <if test="null!=req.settlementDateEnd and ''!=req.settlementDateEnd"> and settlement_date <![CDATA[<=]]>#{req.settlementDateEnd} </if>
若不使用<![CDATA[ ]]> 標識,則文中標紅部分會被XML解析,則得不到需要的結果,這兒是由於
在 XML 元素中,"<" 和 "&" 是非法的。
"<" 會產生錯誤,因為解析器會把該字元解釋為新元素的開始。
"&" 也會產生錯誤,因為解析器會把該字元解釋為字元實體的開始。
而使用<![CDATA[ ]]> 標識之後,CDATA[。。。。。。。。 ]中的內容則不會被解析,其作用類似於js中或C中的轉義字元。
最後:
CDATA 部分不能包含字串 "]]>"。也不允許巢狀的 CDATA 部分。
標記 CDATA 部分結尾的 "]]>" 不能包含空格或折行。