字符串xml中节点的特殊符号替换

最近做项目的时候出现一个问题,就是拉取别的项目得xml数据的时候会出现xml节点中存在大小于号的问题,对这个xml文件进行一个解析的时候就会报错,具体报错格式如下:

<xxx>
	<aaa> aa<82 ,bb<27 </aaa>
</xxx>

这种数据平常用没有问题,但是进行xml解析的时候就会报错。

public static String formatBeforeTrans(String data) {
        if ((data == null) | "".equals(data)) {
            return "";
        } else {
            data = data.replaceAll("\\&", "&amp;");
            data = data.replaceAll("\\<", "&lt;");
            data = data.replaceAll("\\>", "&gt;");
            data = data.replaceAll("\\\"", "&quot;");
            data = data.replaceAll("\\'", "&apos;");
            data = data.replaceAll("\\\n", "STEAF_NEWLINE");
            return data;
        }
    }
public  static String regex(String xml) {
        //正则表达式
        String rgex =  ">(.*?)</";
        Pattern pattern = Pattern.compile(rgex);// 匹配的模式    
        Matcher m = pattern.matcher(xml);
        //匹配的有多个
        List<String> list = new ArrayList<String>();
        while (m.find()) {
        int i = 1;
            if (m.group(i).indexOf("//<")==-1 && m.group(i).indexOf("//>")==-1){
                xml = xml.replace(m.group(i), formatBeforeTrans(m.group(i)));
            }
        }
        return xml;
    }
<xxx>
	<aaa> aa&lt;82 ,bb&lt;27 </aaa>
</xxx>

就这样给转换过来了,暂时调试没什么问题,肯定有更加高效的解决方法,欢迎交流。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值