java 解析XML 乱码

//            1.创建Reader对象
            SAXReader reader = new SAXReader();
            reader.setEncoding("utf-8");// 如果有乱码这里设置成utf-8即可,这里只支持两种编码格式,GBK直接转utf-8即可,不支持填写gbk
            //2.加载xml
            Document document = reader.read("文件路径");
            //3.获取根节点
            Element rootElement = document.getRootElement();
            Element body = rootElement.element("body");
            Element response = body.element("response");
            Element OrigRptJson = response.element("OrigRptJson");
            String jsonstr = OrigRptJson.getStringValue();
            JSONObject jsonObject = (JSONObject) JSONObject.parse(jsonstr);
            JSONObject creditDetail = jsonObject.getJSONObject("creditDetail");
            JSONArray assetDisposition = creditDetail.getJSONArray("assetDisposition");
            logger.info("解析的内容assetDisposition:{}",assetDisposition);
            List<Map<String,String>> list = (List<Map<String,String>>)JSONArray.parse(String.valueOf(assetDisposition));
            for (Map<String,String> a :list
            ) {
                logger.info("解析的内容:{}",a);
                String b= a.get("organname");
                logger.info("解析的内容:{}",b);
            }

接收从其他地方传过来的String格式的xml

Document document = DocumentHelper.parseText(creditJson);//creditJson String 格式的xml
            document.setXMLEncoding("utf-8");//设置编码格式源文件是GBK不设置会有乱码
            //3.获取根节点
            Element rootElement = document.getRootElement();
            Element body = rootElement.element("body");
            Element response = body.element("response");
            Element OrigRptJson = response.element("OrigRptJson");
            String jsonstr = OrigRptJson.getStringValue();
            JSONObject jsonObject = (JSONObject) JSONObject.parse(jsonstr);
            JSONObject creditDetail = jsonObject.getJSONObject("creditDetail");
            JSONArray assetDisposition = creditDetail.getJSONArray("assetDisposition");//这里获取到的是一个list所以用JSONArray 接收
            logger.info("解析的内容assetDisposition:{}",assetDisposition);
            List<Map<String,String>> list = (List<Map<String,String>>)JSONArray.parse(String.valueOf(assetDisposition));
            for (Map<String,String> a :list
            ) {
                logger.info("解析的内容:{}",a);
                String b= a.get("organname");
                logger.info("解析的内容:{}",b);
            }
            logger.info("返回的数据-----------{}",creditJson);
            if (creditJson != null && creditJson.length() > 0) {
                requestJson = JSONObject.parseObject(creditJson);
            }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用VS2019解析XML时出现乱码的问题,可以尝试以下几种方法解决: 1. 确保XML文件的编码格式正确,可以在创建Reader对象时指定编码格式,例如设置为utf-8:reader.setEncoding("utf-8")。这样可以防止乱码问题的发生。 2. 检查XML文件本身的编码格式,确保它与解析时指定的编码格式一致。可以使用文本编辑器打开XML文件,查看文件头部是否指定了正确的编码格式。 3. 如果XML文件的编码格式是GBK,而解析时指定的是utf-8,可以尝试将XML文件的编码格式转换为utf-8。可以使用文本编辑器打开XML文件,将其另存为utf-8格式。 4. 确保在解析XML之前,读取XML文件的内容时使用了正确的编码格式。可以在读取XML文件时指定编码格式,例如使用StreamReader类的构造函数:StreamReader reader = new StreamReader("文件路径", Encoding.UTF8)。 5. 如果以上方法都无效,可以尝试使用其他的XML解析库或工具进行解析,以确定是否是解析库本身的问题。 请根据具体情况选择适合的方法来解决乱码问题。<span class="em">1</span> #### 引用[.reference_title] - *1* [java 解析XML 乱码](https://blog.csdn.net/qq_43684538/article/details/103850322)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值