解决XML空结点非标准格式问题

解决XML空结点格式问题:

   如有的XML标准空结点如:<GNo></GNo>要求生成<GNo/>的形式。利用DOM4J的document.asXML方法解决。

/** 
    * @Title: marshaller 
    * @Description: 生成XML报文,并解决空节点问题:如<GNo></GNo>改为<GNo/>
    * @param @param marobject
    * @param @param mappingfile
    * @param @param fileName
    * @param @return
    * @param @throws Exception   
    * @return String  
    * @throws 
    */ 
    public static String marshaller(Object marobject, String mappingfile,String fileName) throws Exception {
        String objStr = "";
        try {
            Mapping map = new Mapping();
            map.loadMapping(mappingfile);
            if (true) {
                StringWriter sw = new StringWriter();
                Marshaller marshaller = new Marshaller(sw);
                marshaller.setEncoding("UTF-8");
                marshaller.setMapping(map);
                marshaller.marshal(marobject);
                sw.flush();
                objStr = sw.toString();
                
                FileOutputStream fo = new FileOutputStream(new File(fileName));
                PrintStream so = new PrintStream(fo,true,"UTF-8");
            	Document document = DocumentHelper.parseText(objStr);
                so.print(document.asXML());
            	
                sw.close();
            }
        } catch (Exception ex) {
            throw new Exception("marshaller() " + ex.toString());
        }
        return objStr;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值