`

XStream解析XMl文件

 
阅读更多

1、新建RefundResult.java文件:

/**
 * 
 */
package com.saicfc.pmpf.resume.ccb.utils;

import java.util.List;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;

/**
 * 解析银行返回数据
 * @author lizhiyong
 * @version $Id: QueryOrders2.java, v 0.1
		2014年7月24日 下午3:30:47 Exp $
 */
@XStreamAlias("TX")
public class RefundResult {
	@XStreamAlias("REQUEST_SN")
	public String requestSn;
	
	@XStreamAlias("CUST_ID")
	public String custId;
	
	@XStreamAlias("TX_CODE")
	public String txcode;
	
	@XStreamAlias("RETURN_CODE")
	public String returnCode;
	
	@XStreamAlias("RETURN_MSG")
	public String returnMsg;
	
	@XStreamAlias("LANGUAGE")
	public String language;
	
	@XStreamAlias("TX_INFO")
	public TxInfo2 txInfo2;
	
	public static class TxInfo2{
	    @XStreamAlias("CUR_PAGE")
	    public String curPage;
	    
	    @XStreamAlias("TPAGE")
        public String tPage;
	    
	    @XStreamImplicit(itemFieldName="LIST")
	    public List<QueryOrder> queryOrders;
	    @XStreamAlias("NOTICE")
	    public String notice;
	    
        public String getCurPage() {
            return curPage;
        }

        public String getNotice() {
            return notice;
        }

        public String gettPage() {
            return tPage;
        }

        public List<QueryOrder> getQueryOrders() {
            return queryOrders;
        }
	    
	} 

	public static class QueryOrder {
		@XStreamAlias("TRAN_DATE")
		public String tranDate;
		
		@XStreamAlias("REFUND_DATE")
		public String refundDate;
		
		@XStreamAlias("ORDER_NUMBER")
		public String orderNumber;

		@XStreamAlias("REFUND_ACCOUNT")
		public String refundAccount;
		
		@XStreamAlias("PAY_AMOUNT")
		public String payAmount;
		
		@XStreamAlias("REFUNDEMENT_AMOUNT")
		public String refundementAmount;
		
		@XStreamAlias("POS_CODE")
		public String posCode;
		
		@XStreamAlias("USERID")
		public String userId;
		
		@XStreamAlias("STATUS")
		public String status;

        public String getTranDate() {
            return tranDate;
        }

        public String getRefundDate() {
            return refundDate;
        }

        public String getOrderNumber() {
            return orderNumber;
        }

        public String getRefundAccount() {
            return refundAccount;
        }

        public String getPayAmount() {
            return payAmount;
        }

        public String getRefundementAmount() {
            return refundementAmount;
        }

        public String getPosCode() {
            return posCode;
        }

        public String getUserId() {
            return userId;
        }

        public String getStatus() {
            return status;
        }
	}

    public String getRequestSn() {
        return requestSn;
    }

    public String getCustId() {
        return custId;
    }

    public String getTxcode() {
        return txcode;
    }

    public String getReturnCode() {
        return returnCode;
    }

    public String getReturnMsg() {
        return returnMsg;
    }

    public String getLanguage() {
        return language;
    }

    public TxInfo2 getTxInfo2() {
        return txInfo2;
    }





}

2、解析XML文件:

XStream xStream = new XStream(new DomDriver());
            xStream.processAnnotations(RefundResult.class);
            RefundResult query = (RefundResult) xStream.fromXML(revResult);
            Map<String, Object> orderMap = new HashMap<String, Object>();
            orderMap.put("returnCode", query.getReturnCode());
            orderMap.put("returnMsg", query.getReturnMsg());
            //交易成功
            if ("000000".equals(orderMap.get("returnCode"))) {
                orderMap.put("requestSn", query.getRequestSn());
                orderMap.put("custId", query.getCustId());
                orderMap.put("txcode", query.getTxcode());
                orderMap.put("language", query.getLanguage());

                TxInfo2 txInfo2 = query.getTxInfo2();
                orderMap.put("curPage", txInfo2.getCurPage());
                orderMap.put("tPage", txInfo2.gettPage());

                List<QueryOrder> queryList = txInfo2.getQueryOrders();

                List queryOrderList = new ArrayList();

                Map<String, Object> queryMap = null;

                for (Iterator iterator = queryList.iterator(); iterator.hasNext();) {
                    QueryOrder queryOrder = (QueryOrder) iterator.next();
                    queryMap = new HashMap<String, Object>();
                    queryMap.put("tranDate", queryOrder.getTranDate());
                    queryMap.put("refundDate", queryOrder.getRefundDate());
                    queryMap.put("orderNumber", queryOrder.getOrderNumber());
                    queryMap.put("refundAccount", queryOrder.getRefundAccount());
                    queryMap.put("payAmount", queryOrder.getPayAmount());
                    queryMap.put("refundementAmount", queryOrder.getRefundementAmount());
                    queryMap.put("posCode", queryOrder.getPosCode());
                    queryMap.put("userId", queryOrder.getUserId());
                    queryMap.put("status", queryOrder.getStatus());

                    //把每一个订单信息都存放在queryOrderList中
                    queryOrderList.add(queryMap);
                }
                //把所有订单信息集合queryOrderList存放到orderMap中
                orderMap.put("queryOrderList", queryOrderList);
                logger.info("解析银行退款查询返回数据结束:" + orderMap);
                return orderMap;
            }


分享到:
评论

相关推荐

    xstream方式解析xml文件

    xstream方式解析及生成xml文件

    Xstream解析xml

    使用Xstream解析复杂xml文件,并读入MySql数据库中

    xstream轻松解析xml到java对象

    xstream轻松解析xml到java对象,内附样例。so easy!妈妈再也不用担心我的xml解析。

    XStream XML解析

    XStream XML解析 含样例及详细嵌入文档

    XStream 解析 android

    XStream 解析 可以迅速解析XML文件

    使用xstream进行java类与xml文件互转解析--代码

    使用xstream进行java类与xml文件互转解析

    android 使用XStream解析xml的实例

    1,要解析的xml文件文件 xml=&lt;apps&gt;\n + &lt;app&gt;\n + &lt;id&gt;1&lt;/id&gt;\n + &lt;name&gt;burn&lt;/name&gt;\n + &lt;version&gt;1.0&lt;/version&gt;\n + &lt;info&gt;\n + &lt;size&gt;10.5&lt;/size&gt;\n + &lt;message&gt;hhhhhhhh&lt;/message&gt;\n + &lt;/info&gt;\n + ...

    android XMl 解析神奇xstream 一

    android XMl 解析神奇xstream 一: 解析android项目中的xml文件

    xStream解析工具包

    Xstream是一种OXMapping 技术,是用来处理XML文件序列化的框架,在将JavaBean序列化,或将XML文件反序列化的时候,不需要其它辅助类和映射文件,使得XML序列化不再繁索。Xstream也可以将JavaBean序列化成Json或反序列...

    java解析XML所需要的完整包(包括XStream.jar,dom4j.jar和xpull/xpp.jar)

    java转换XML的必须要的包,总共三个,分别包括XStream.jar,dom4j.jar和xpull/xpp.jar包。

    xstream学习文档及实例

    xstream用于解析和生成XML文件最优方案

    自己总结的操作xml文件的方法

    用jdom 操作xml文档 jdom+xpath 操作 xml 文档 Xstream

    SAXParser-用SAX读取大于100M的xml文件(java)

    压缩包里面有两个文件:SAX.java和SAXparse.java 用来解析大于100M的xml文件,SAX读取xml不同于DOM方式,DOM方式在解析xml前需要全部加载xml文件,当xml文件很大时,就会出现内存不足的问题,而SAX则是逐行读取xml...

    XStream 1.3 API(CHM)

    XStream可以将xml直接转换成Java类,并且完成数据的封装,反之可以将Java类转换成xml文件.XStream可以省去了经常人为解析xml的过程。

    xstream 1.4.3 bin zip

    xStream1.4.3发行包,可以用xStream解析生成xml,面相对象,效率很高,可以利用转换器对付复杂xml,不过过于复杂的xml还是有解析难度,但是至今没有遇到过于复杂的xml文件

    dom4j、XStream的jar包

    dom4j用于解析xml 文档,而XStream则是将Java对象转成xml文件。使用这两个工具就很好的解决了xml文件的解析与Java对象转成xml的麻烦了!

    xStream使用demo

    使用xstream来读取xml文件的demo,该demo中,使用了支付宝对账单返回的xml为列子来展示使用xstream的注解的方式读取xml,并且转成实体类.学习xstream或者对xstream有疑问的可以参考下..之所以使用支付宝账单返回的xml是...

    xstream_1.4.3及其依赖包_xstream_1.4.3及其依赖包

    解析xml文件需要用到jar包,内容包含xstream_1.4.3及_xstream_1.4.3 -dom4j及其依赖包,需要用到的都含有

    基于Java的XML解析与反射设计模式.doc

    xstream可以完美转换xml,与以往的解析xml工具dom相比,xstream是一个易用的、开源 的库,使用起来简单、小巧,容易理解,可以轻易的将java对象和xml文档相互转换,而 且可以修改某个特定的属性和节点名称。...

    xstream实例.rar

    利用xstream技术生成和解析XML文件的例子。同时里面包含xstream1.3.1.chm帮助文档,jar包(xstream-1.3.1.jar、jettison-1.0.1.jar、xpp3_min-1.1.4c.jar、junit.4.8.1.jar),还有sstream1.3.1源码。

Global site tag (gtag.js) - Google Analytics