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;
            }
时间: 2024-10-10 21:25:28

XStream解析XMl文件的相关文章

XStream解析XMl文件2

1.新建QueryOrders.java文件: /** * */ package com.saicfc.pmpf.resume.bocom.utils.resume; import java.util.List; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamImplicit; /** * @author lizhiyong

Xstream 解析xml文件内容

刚刚接手的一个项目,接到一个对接用户数据的需求,对方使用的是xml格式来传输文件,特此记下解析该类文件的方法 public interface XmlResolver<T> { XStream builder(); default T parse(String xml){ return (T) builder().fromXML(xml); } default T resolver(String xml){ return parse(xml); } } //测试类 public class T

使用XML序列化器生成XML文件和利用pull解析XML文件

首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message> <sms> <body> 陈驰0 </body> <date> 1462162910995 </date> <address> 1380 </address> <type> 1 </type> &

解析xml文件的几个步骤

1.生成xml文件的解析器 XmlPullParser parser = Xml.newPullParser(); 2.设置解析器读取流对象的编码格式 parser.setInput(is, "utf-8"); 3.设置解析xml文件之后要存储的位置 List<WeatherInfo> weatherInfo = null; WeatherInfo info = null; 4.定义解析器解析到的事件类型 int type = parser.getEventType();

JS解析XML文件和XML字符串

JS解析XML文件 <script type='text/javascript'>    loadXML = function(xmlFile){        var xmlDoc=null;        //判断浏览器的类型        //支持IE浏览器        if(!window.DOMParser && window.ActiveXObject){            var xmlDomVersions = ['MSXML.2.DOMDocument.

Php 解析XML文件

Php 解析XML文件 Php 解析XML文件,仅供学习参考!示例代码如下: <?php header("Content-type: text/html; charset=utf-8"); if(!isset($_GET["_u"])){ echo "<script>javascript:alert('请勿非法访问!');window.history.back();</script>"; exit(); } $url

SAX解析XML文件

SAX是Simple API for XML的缩写,它并不是由W3C官方所提出的标准.SAX是一种轻量型的方法,不像DOM解析时,把XML文档全部载入内存中,在PC上操作,Dom还有 优势,但在手机中端上则无优势,因为手机内存和硬件都比不上PC强.使用 SAX 是比较安全的,并且 Android 提供了一种传统的 SAX 使用方法,以及一个便捷的 SAX 包装器.SAX采用基于事件驱动的处理方式,它将XML文档转换成一系列的事件,由单独的事件处理器来决定如何处理. 在SAX接口中,事件源是org

Android开发学习---使用XmlPullParser解析xml文件

Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将主要介绍pull解析器解析xml文件,环境为ubuntu 12.04+ intelij 13.1 + android sdk 2.1 一.创建一个XML项目,步骤如下: 二.解析一个xml文件: assets/person.xml <?xml version="1.0" encodi

【Android进阶】解析XML文件之使用DOM解析器

在前面的文章中,介绍了使用SAX解析器对XML文件进行解析,SAX解析器的优点就是占用内存小.这篇文章主要介绍使用DOM解析器对XML文件进行解析.DOM解析器的优点可能是理解起来比较的直观,当然,每个人对不同的解析方法可能有不同的喜好.但是DOM解析器有个比较大的缺点,就是占用内存比较多,在Android中的XML解析中,还是更推荐其他的解析方式. 下面介绍使用DOM解析器对XML进行解析. 下面是我们需要解析的xml文件 <?xml version="1.0" encodin