xml中特殊字符转义

一般,我们要求上游传xml格式字符串时直接给转义好,或者允许含特殊字符的节点增加CDATA包围,但是总有那么一些管杀不管埋的伙伴,你能不能解析是你的事。
所以,这里我们将xml串中指定skuName节点里面排除一下,其实我是解析不了的时候才调这个重新转义一遍的,一般不走这里,链路不要长。

    public static String replaceTag(String xml,String tagName){
        String tagF = "<"+tagName+">";
        String tagB = "</"+tagName+">";
        String[] a = xml.split(tagF);

        int indx = 0;
        StringBuilder builder = new StringBuilder();
        for (int i=0;i<a.length;i++){
            indx = a[i].indexOf(tagB);
            if(a[i].indexOf(tagB)>-1){
                builder.append(a[i].substring(0,indx).replaceAll("&","&amp;").replaceAll("<","&lt;")).append(a[i].substring(indx));//大于号是没事的
            }else {
                builder.append(a[i]);
            }
            if(i<a.length-1){
                builder.append(tagF);
            }
        }
        return builder.toString();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容