xml中特殊字符转义

2019-03-19  本文已影响0人  带着猪散步

一般,我们要求上游传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();
上一篇下一篇

猜你喜欢

热点阅读