XML中共有5个特殊的字符,分别是:&<>“’。如果配置文件中的注入值包括这些特殊字符,就需要进行特别处理。有两种解决方法:其一,采用本例中的特殊标签,将包含特殊字符的字符串封装起来;其二,使用XML转义序列表示这些特殊的字符,这5个特殊字符所对应XML转义序列在
特殊符号 | 实体引用 | XML中的含义 | 说明 |
---|---|---|---|
< | & lt; | 新元素的开始 | 小于号 |
> | & gt; | 大于号 | |
& | & amp; | 和 | |
" | & quot; | 单引号 | |
' | & apos; | 双引号 |
注:&后面有空格,使用时去除。
Spring在进行XML配置时,如果属性值包含了一个XML的特殊符号,因此我们特意在属性值外添加了一个<![CDATA[ ]]>的XML特殊处理标签,<![CDATA[ ]]>的作用是让XML解析器将标签中的字符串当作普通的文本对待,以防止某些字符串对XML格式造成破坏。来看一个例子: XML代码:
<bean id="car" class="com.baobaotao.attr.Car">
<property name="maxSpeed">
<value>200</value>
</property>
<property name="brand"><value><![CDATA[红旗&CA72]]></value>
</property>
</bean>
如果使用XML转义序列,我们可以使用以下的配置替换代码: XML代码:
<property name="brand"><value>红旗&CA72</value></property>
###参考文献
- https://www.cnblogs.com/garinzhang/p/spring_Special_char_encode.html
- https://www.cnblogs.com/Carrie-J/p/5732371.html