解析丰桥返回报文xml问题

r00_a2lBUR 2019-06-27 03:39:52
丰桥api物流查询返回的是一个xml,就像是
<?xml version='1.0' encoding='UTF-8'?>
<Response service="RouteService">
<Head>OK</Head>
<Body>
<RouteResponse mailno="**************" orderid="SFKD-**************">
<Route remark="顺丰速运 已收取快件(测试数据)" accept_time="2018-05-01 08:01:44" accept_address="广东省深圳市软件产业基地" opcode="50"/>
<Route remark="已签收,感谢使用顺丰,期待再次为您服务(测试数据)" accept_time="2018-05-02 12:01:44" accept_address="广东省深圳市软件产业基地" opcode="80"/>
</RouteResponse>
</Body>
</Response>

请问这要怎么解析比较好?
...全文
208 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
r00_a2lBUR 2019-06-28
  • 打赏
  • 举报
回复
引用 2 楼 getdate 的回复:

import net.sf.json.xml.XMLSerializer;
public static JSONObject xml2json(String xmlString) {
XMLSerializer xmlSerializer = new XMLSerializer();
JSONObject json = JSONObject.fromObject(xmlSerializer.read(xmlString).toString(1));
return json;
}

JSONObject json = xml2json(xml);
JSONArray jsonArray1 = (JSONArray) json.get("Body");
if (jsonArray1 != null) {
json = jsonArray1.getJSONObject(0);
jsonArray1 = (JSONArray)json.get("Route");
for (int i = 0; i < jsonArray1.size(); i++) {
JSONObject object = (JSONObject) jsonArray1.get(i);
System.out.println("remark:"+object.get("@remark"));
System.out.println("accept_time:"+object.get("@accept_time"));
System.out.println("accept_address:"+object.get("@accept_address"));
System.out.println("opcode:"+object.get("@opcode"));
}
}



测试成功,下载了好几个包
getdate 2019-06-27
  • 打赏
  • 举报
回复

import net.sf.json.xml.XMLSerializer;
public static JSONObject xml2json(String xmlString) {
        XMLSerializer xmlSerializer = new XMLSerializer();
        JSONObject json = JSONObject.fromObject(xmlSerializer.read(xmlString).toString(1));
        return json;
    }

JSONObject json = xml2json(xml);
        JSONArray jsonArray1 = (JSONArray) json.get("Body");
        if (jsonArray1 != null) {
            json = jsonArray1.getJSONObject(0);
            jsonArray1 =  (JSONArray)json.get("Route");
            for (int i = 0; i < jsonArray1.size(); i++) {
                JSONObject object = (JSONObject) jsonArray1.get(i);
                System.out.println("remark:"+object.get("@remark"));
                System.out.println("accept_time:"+object.get("@accept_time"));
                System.out.println("accept_address:"+object.get("@accept_address"));
                System.out.println("opcode:"+object.get("@opcode"));
            }
        }

getdate 2019-06-27
  • 打赏
  • 举报
回复
1:在网上找一个 XML2Json的工具; 2:将返回的XML转化为JsonObject,然后直接在解析json; 或者 找一个xml的解析器,直接解析xml也行;

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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