XML与对象的互相转换

这篇博客介绍了在对接WebService接口时,如何在Java中使用Document对象拼接XML文档数据,以及如何根据XML节点创建对象。作者分享了将XML转换为对象的代码示例,并提到了XML的解析方法,展示了回执报文的XML格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XML与对象的相互转换

最近在对接海关的接口,接口采用的是WebService接口,关于怎么获取webservice的wsdl文件请参考
根据wsdl文件生成客户端代码
好啦回归主题,由于WebService需要传输的数据格式大多为xml格式,苦苦查询后我采用了最适合自己的一种方式,通过Document对象来拼接xml文档数据,根据接口文档的节点创建对象。
上代码:

public String NowCustoms(OrderInfoList orderInfoList){
   
        //==========================================
        OrderInfo orderInfo=orderInfoList.getOrderInfo();
        /*
         * 签名信息
         */
        JkfSign jkfSign=orderInfo.getJkfSign();
        /**
         * 订单信息
         *
         */
        JkfOrderImportHead jkfOrderImportHead=orderInfo.getJkfOrderImportHead();
          /*
          购买人信息
         */
        JkfGoodsPurchaser jkfGoodsPurchaser=orderInfo.getJkfGoodsPurchaser();
        //==========================================
        Element mo = new Element("mo");
        mo.setAttribute("version","1.0.0");
        Document doc = new Document(mo);
        Element head = new Element("head");
        Element businessType=new Element("businessType").setText("IMPORTORDER");
        Element body=new Element("body");
        //--------
        Element orderInfoListElement=new Element("orderInfoList");
        Element orderInfoElement=new Element("orderInfo");
        //jkfSign录入xml文件
        Element jkfSignElement=new Element("jkfSign");
          ...
            jkfSignElement.addContent(new Element("note").setText(jkfSign.getNote()));
        //jkfOrderImportHead录入xml文件
        Element jkfOrderImportHeadElement=new Element("jkfOrderImportHead");
            ...
            jkfOrderImportHeadElement.addContent(new Element("consigneeDitrict").setText(jkfOrderImportHead.getConsigneeDitrict()));
            //订单表体明细
            /**
             * 订单表体
             */
            JkfOrderDetailList jkfOrderDetailList=orderInfo.getJkfOrderDetailList();
            List<JkfOrderDetail> jkList=jkfOrderDetailList.getJkfOrderDetail();
             //订单表体
            Element jkfOrderDetailListElement=new Element("jkfOrderDetailList");

            for (int i = 0; i < jkList.size(); i++) {
   
                  Element jaeOrderDetailElement=new Element("jkfOrderDetail");
                    /**
                     * 订单表体明细
                     */
                    JkfOrderDetail jkfOrderDetail=jkList.get(i);
                    jaeOrderDetailElement.addContent(new Element("goodsOrder"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值