今天查找一個錯誤,發現在xml里面不能包含特殊字符:&,特來總結一下:
XML中共有5個特殊的字符,分別是:&<>“’。如果配置文件中的注入值包括這些特殊字符,就需要進行特別處理。有兩種解決方法:其一,采用本例中的<![CDATA[ ]]>特殊標簽,將包含特殊字符的字符串封裝起來;其二,使用XML轉義序列表示這些特殊的字符,這5個特殊字符所對應XML轉義序列在表4-2中說明:
Spring在進行XML配置時,如果屬性值包含了一個XML的特殊符號,因此我們特意在屬性值外添加了一個<![CDATA[ ]]>的XML特殊處理標簽,<![CDATA[ ]]>的作用是讓XML解析器將標簽中的字符串當作普通的文本對待,以防止某些字符串對XML格式造成破壞。來看一個例子:
XML代碼:
如果使用XML轉義序列,我們可以使用以下的配置替換代碼清單4-10中的配置:
XML代碼: