在平常的开发中,相信大家遇到xml字符串中包含有gt,lt, quot, amp, apos这些符号的情况,比如如下图所示:
从上图可看到原本的<,>已经被分别转义成了<和>,导致整个xml的可读性下降。那么该如何将这些烦人的字符过滤掉呢?也就是对xml字符串进行一波反转义。其实非常简单,可以调用org.apache.commons.lang包中的StringEscapeUtils工具类下的unescapeXml方法。首先可以在pom.xml中引入如下的依赖:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
接着就可以在代码中使用String xxxx = StringEscapeUtils.unescapeXml(“这里输入xml字符串”);其实感兴趣的同学可以继续看下它里面的代码注释和实现逻辑,帮助自己加深对代码的理解,这里我可以贴下该方法部分代码注释和实现逻辑,如下图所示:
从代码注释中可以很清楚的看到Supports only the five basic XML entities (gt, lt, quot, amp, apos).,意思就是方法可以支持反转义五种基本的XML实体,分别包括了gt, lt, quot, amp, apos。
其实除了这个工具包的方法,像非常实用的cn.hutool工具包中的HtmlUtil工具类下的unescape(String htmlStr)方法也是可以支持反转义的,有兴趣的同学可以自行搜索了解学习下!
好的,今天就讲到这里。