今天同事反应了一个问题,说有个小模块我们这边生成的xml字符串后台的同事们反序列化不了,原因是因为生成的xml字符串之间的空格太多,我们的xml字符串是用xstream生成的,如图:
于是,我们只有把这些字段之间的空格搞掉,
试了很多方法,比如:
1,requestXmlStr = requestXmlStr.replaceAll(" ", "");
2,requestXmlStr .replaceAll("[\\s&&[^\r\n]]*(?:[\r\n][\\s&&[^\r\n]]*)+", "");
3,requestXmlStr.replaceAll("\\s{1,}", " ")
最后都以失败告终
最后尝试:
Pattern p = Pattern.compile("\\s{2,}|\t|\r|\n");
Matcher m = p.matcher(requestXmlStr);
requestXmlStr = m.replaceAll("");
搞定,达到我们想要的效果,最后的效果如下图:
虽然没有上面有空格的好看,但总算没问题了
本文介绍了在使用xstream生成的XML字符串中出现过多空格导致反序列化失败的问题。尝试了多种替换空格的方法失败后,通过正则表达式匹配并替换多个连续空格、制表符和换行符成功解决了问题。
2459

被折叠的 条评论
为什么被折叠?



