那么解析器将会出现错误因为解析器会认为这是一个新元素的开始。所以不应该像下面那样书写代码:
为了避免出现这种情况必须将字符"<" 轉换成实体,像下面这样:
在读取的时候解析器会自动将其转换回"&","<",">"等特殊字符,正常来说只有"<" 字符和"&"字符对于XML来说是严格禁止使用的。
a. 转义序列各字符间不能有空格;
b. 转义序列必须以";"结束;
c. 单独的&不被认为是转义开始;
d. 区分大小写 以下是XML中需要的转义字符:
最近在做铨文检索模块功能的测试,发现对于特殊符号的处理还存在很大的问题
有人说Spring本身提供了对HTML、、sql语句的转码工具类,但是测试了一下发現其HtmlUtils.htmlEscape()对单引号并没做处理只是转码了以下几个特殊字符:
后来采用replace替换为('),IE浏览器里依然没有起到作用只好在google里测试一下查看源玳码,发现其转码成(')
今天看到下面这篇文章才明白:
在 (x)HTML 中一些特殊字符应该进行 HTML 实体转义。
常见的有:&(and)、"(双引号)、'(单引号)、<(小于号)、>(大于号)这些在 (x)HTML
但是问题就来了,为什么上面单引号的转义和别的特殊字符不同呢为什么唯独单引号用的是实体編号('),而其它的用的是实体名称(')呢
原因就是 IE 浏览器暂时不支持单引号的实体名称,IE 浏览器暂时只支持单引号的实体编号
另外,百度也不支持单引号的实体名称这个是我在在百度搜索结果中看出来的(现在我已经把单引号改成实体编号的形式了)。