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文件,并读入MySql数据库中
xstream轻松解析xml到java对象,内附样例。so easy!妈妈再也不用担心我的xml解析。
XStream XML解析 含样例及详细嵌入文档
XStream 解析 可以迅速解析XML文件
使用xstream进行java类与xml文件互转解析
1,要解析的xml文件文件 xml=<apps>\n + <app>\n + <id>1</id>\n + <name>burn</name>\n + <version>1.0</version>\n + <info>\n + <size>10.5</size>\n + <message>hhhhhhhh</message>\n + </info>\n + ...
android XMl 解析神奇xstream 一: 解析android项目中的xml文件
Xstream是一种OXMapping 技术,是用来处理XML文件序列化的框架,在将JavaBean序列化,或将XML文件反序列化的时候,不需要其它辅助类和映射文件,使得XML序列化不再繁索。Xstream也可以将JavaBean序列化成Json或反序列...
java转换XML的必须要的包,总共三个,分别包括XStream.jar,dom4j.jar和xpull/xpp.jar包。
xstream用于解析和生成XML文件最优方案
用jdom 操作xml文档 jdom+xpath 操作 xml 文档 Xstream
压缩包里面有两个文件:SAX.java和SAXparse.java 用来解析大于100M的xml文件,SAX读取xml不同于DOM方式,DOM方式在解析xml前需要全部加载xml文件,当xml文件很大时,就会出现内存不足的问题,而SAX则是逐行读取xml...
XStream可以将xml直接转换成Java类,并且完成数据的封装,反之可以将Java类转换成xml文件.XStream可以省去了经常人为解析xml的过程。
xStream1.4.3发行包,可以用xStream解析生成xml,面相对象,效率很高,可以利用转换器对付复杂xml,不过过于复杂的xml还是有解析难度,但是至今没有遇到过于复杂的xml文件
dom4j用于解析xml 文档,而XStream则是将Java对象转成xml文件。使用这两个工具就很好的解决了xml文件的解析与Java对象转成xml的麻烦了!
使用xstream来读取xml文件的demo,该demo中,使用了支付宝对账单返回的xml为列子来展示使用xstream的注解的方式读取xml,并且转成实体类.学习xstream或者对xstream有疑问的可以参考下..之所以使用支付宝账单返回的xml是...
解析xml文件需要用到jar包,内容包含xstream_1.4.3及_xstream_1.4.3 -dom4j及其依赖包,需要用到的都含有
xstream可以完美转换xml,与以往的解析xml工具dom相比,xstream是一个易用的、开源 的库,使用起来简单、小巧,容易理解,可以轻易的将java对象和xml文档相互转换,而 且可以修改某个特定的属性和节点名称。...
利用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源码。