xstream对象转xml遇到特殊字符怎么处理方便些 在线等

吸尘器 2013-12-17 11:25:12
前台form表单里面的数据,传到后台后,需要通过xstream转化成xml保存到数据库,有些数据包含有 " < > 等特殊字符,转换成的xml就没法用了,多了个"多了个<>影响xml没法解析。
有一种方案就是"用replaceAll替换成"感觉有点繁琐,有多杀特殊字符就要转多少,不方便、有时候还转化不全,想问问各位大神有没什么方便、的解决方法,或者java内部、xstream内部提供有转换字符串的方法
...全文
726 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cosmic-bo 2021-07-29
  • 打赏
  • 举报
回复

if (StringUtils.isNotEmpty(raceXmlContext)) {
contextnew = ContentUtils.xmlReplace(raceXmlContext);
TX tx2 = null;
boolean condition = true;

            while(condition) {
                try {
                    tx2 = (TX)XmlUtil.fromXML(contextnew);
                    condition = false;
                } catch (Exception var17) {
                    String sw = ContentUtils.getStackTraceInfo(var17);
                    String str = sw.toString();
                    if (str.indexOf("元素内容必须由格式正确的字符数据或标记组成") > 0) {
                        condition = false;
                        contextnew = contextnew.replaceAll("<>", "()");
                        tx2 = (TX)XmlUtil.fromXML(contextnew);
                    }

                    if (str.indexOf("元素类型 \"") > 0 && str.indexOf("\" 必须由匹配的结束标记 ") > 0) {
                        String s = str.substring(str.indexOf("元素类型 \"") + 6, str.indexOf("\" 必须由匹配的结束标记 "));
                        contextnew = contextnew.replaceAll("<" + s + ">", "(" + s + ")");
                    } else {
                        condition = false;
                    }

                    try {
                        tx2 = (TX)XmlUtil.fromXML(contextnew);
                        condition = false;
                    } catch (Exception var16) {
                    }
                }
            }

            log.info("\n>>>>>Socket返回数据美化:\n" + XmlUtil.textMessageToXml(tx2));
            command.setObj(tx2);
            command.setSuccess(true);
        } else {
            log.error(">>>>>Socket返回异常数据recexmlcontext:" + raceXmlContext);
            log.error(">>>>>msg:" + msg);
            command.setSuccess(false);
            command.setMsg(msg);
        }
你好毒你好毒 2013-12-17
  • 打赏
  • 举报
回复
就这么几个特殊字符有什么不方便的,要么你再组装xml的时候加上cdata
吸尘器 2013-12-17
  • 打赏
  • 举报
回复
没人遇到过么、自己顶一下

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧