XML中必须进行转义的字符

编写XML代码经常遗漏的常识:  

XML实体中不允许出现"&","<",">"等特殊字符,否则XML语法检查时将出错,如果编写的XML文件必须包含这些字符,则必须分别写成"&amp;","&lt;","&gt;"再写入文件中。例如,如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。所以不应该像下面那样书写代码:  

Java代码   收藏代码
  1. <age> age < 30 </age>   

为了避免出现这种情况,必须将字符"<" 转换成实体,像下面这样:  

Java代码   收藏代码
  1. <age> age &lt; 30 </age>  


在读取的时候,解析器会自动将其转换回"&","<",">"等特殊字符,正常来说,只有"<" 字符和"&"字符对于XML来说是严格禁止使用的。  
需要注意的是:  
a. 转义序列各字符间不能有空格; 
b. 转义序列必须以";"结束; 
c. 单独的&不被认为是转义开始; 
d. 区分大小写。
 

以下是XML中需要的转义字符:[/size] 
&(逻辑与)  &amp;        
<(小于)    &lt;        
>(大于)    &gt;        
"(双引号)  &quot;      

'(单引号)  &apos; [/size]


案例:

第一步:导入包:commons-lang.jar包。

第二步:编写转义工具类:

public class XmlUtils {
public static String escape(String str) {
if (str == null) {
return "";
}
str = StringUtils.replace(str, "&", "&amp;") ;
str = StringUtils.replace(str, "<", "&lt;");
str = StringUtils.replace(str, ">", "&gt;");
str = StringUtils.replace(str, "‘", "&apos;");
str = StringUtils.replace(str, "\"", "&quot;");
return str;
}

}

第三步:编写测试类

public class Dome_01 {

//请求字符串
@Test
public void requestString(){
String aa = "a<222222";

//拼接字符串
String reqString = "<?xml version=\"1.0\" encoding=\"UTF-8\">" +
"<request>" +
"<body>" +
"<vehicle>" +
"<licenseNo>" +
XmlUtils.escape(aa) +
"</licenseNo>" +
"</vehicle>" +
"</body>" +
"</request>";


if(!StrHandler.isNull(reqString)){
System.out.println("字符串不为空");
}else{
System.out.println("字符串为空");
}
}


}

第四步:总结:

图书字符转义是因为有些字符你不转义的话就会误认为是实体的开始。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值