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
*
*/
@XStreamAlias("BOCOMB2C")
public class QueryOrders {
public OpRep opRep;
public OpRep getOpRep() {
return opRep;
}
public class OpRep{
public String retCode;
public String errMsg;
public OpResult opResult;
public OpResultSet opResultSet;
public String getRetCode() {
return retCode;
}
public String getErrMsg() {
return errMsg;
}
public OpResult getOpResult() {
return opResult;
}
public OpResultSet getOpResultSet() {
return opResultSet;
}
}
public class OpResult{
public String merchantID;
public String getMerchantID() {
return merchantID;
}
}
public class OpResultSet{
@XStreamImplicit(itemFieldName="opResult")
public List<OpResults> opResults;
public List<OpResults> getOpResults() {
return opResults;
}
}
public class OpResults{
public String order;
public String orderDate;
public String orderTime;
public String curType;
public String amount;
public String tranDate;
public String tranTime;
public String tranState;
public String orderState;
public String fee;
public String bankSerialNo;
public String bankBatNo;
public String cardType;
public String merchantBatNo;
public String merchantComment;
public String bankComment;
public String getOrder() {
return order;
}
public String getOrderDate() {
return orderDate;
}
public String getOrderTime() {
return orderTime;
}
public String getCurType() {
return curType;
}
public String getAmount() {
return amount;
}
public String getTranDate() {
return tranDate;
}
public String getTranTime() {
return tranTime;
}
public String getTranState() {
return tranState;
}
public String getOrderState() {
return orderState;
}
public String getFee() {
return fee;
}
public String getBankSerialNo() {
return bankSerialNo;
}
public String getBankBatNo() {
return bankBatNo;
}
public String getCardType() {
return cardType;
}
public String getMerchantBatNo() {
return merchantBatNo;
}
public String getMerchantComment() {
return merchantComment;
}
public String getBankComment() {
return bankComment;
}
}
public String signData;
public String getSignData() {
return signData;
}
}
2、解析XML文件:
XStream xStream = new XStream(new DomDriver());
xStream.processAnnotations(QueryOrders.class);
QueryOrders queryOrders = (QueryOrders) xStream.fromXML(result);
OpRep opRep = queryOrders.getOpRep();
String retCode = opRep.getRetCode(); //返回码
String errMsg = opRep.getErrMsg(); //错误描述
OpResult opResult = opRep.getOpResult();
String merchantID = opResult.getMerchantID();//商户号
OpResultSet opResultSet = opRep.getOpResultSet();
List<OpResults> list = opResultSet.getOpResults();
List recList = new ArrayList();
Map<String, Object> recMap = null;
if (CommonUtils.isNotEmpty(list)) {
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
OpResults opResults = (OpResults) iterator.next();
recMap = new HashMap<String, Object>();
recMap.put("order", opResults.getOrder());//订单号
recMap.put("orderDate", opResults.getOrderDate());//订单日期
recMap.put("orderTime", opResults.getOrderTime());//订单时间
recMap.put("curType", opResults.getCurType());//币种
recMap.put("amount", opResults.getAmount());//金额
recMap.put("tranDate", opResults.getTranDate());//支付日期
recMap.put("tranTime", opResults.getTranTime());//支付时间
recMap.put("tranState", opResults.getTranState());//支付交易状态
recMap.put("orderState", opResults.getOrderState());//订单状态
recMap.put("fee", opResults.getFee());//手续费
recMap.put("bankSerialNo", opResults.getBankSerialNo());//银行流水号
recMap.put("bankBatNo", opResults.getBankBatNo());//银行批次号
recMap.put("cardType", opResults.getCardType());//交易卡类型
recMap.put("merchantBatNo", opResults.getMerchantBatNo());//商户批次号
recMap.put("merchantComment", opResults.getMerchantComment());//商户备注
recMap.put("bankComment", opResults.getBankComment());//银行备注
recList.add(recMap);
}
}
String signData = queryOrders.getSignData();//签名数据
//需要去验签的源数据
String msg = "</opRep>";
String originalStr = result.substring(result.indexOf("<opRep>"),
result.indexOf(msg) + msg.length());
Map<String, Object> map = new HashMap<String, Object>();
map.put("retCode", retCode);
map.put("errMsg", errMsg);
map.put("merchantID", merchantID);
map.put("signData", signData);
map.put("originalStr", originalStr);
map.put("recList", recList);
return map;
分享到:
相关推荐
**XStream解析XML实例** 在Java开发中,处理XML数据是一项常见的任务,XStream库提供了一个简单而强大的方式来将Java对象序列化为XML,以及从XML反序列化回Java对象。这个实例将深入探讨如何使用XStream进行XML操作...
本篇文章将深入探讨如何利用Xstream解析XML文件,并将解析后的数据存储到MySQL数据库中。 首先,我们需要了解Xstream的基本用法。Xstream的核心在于创建一个`XStream`实例,然后通过这个实例来转换XML和Java对象。...
以下是使用XStream解析XML和POJO双向转化的基本步骤: 1. 引入XStream库:在Java工程中,需要添加XStream的jar包,通常可以通过Maven或Gradle等构建工具管理依赖。在这个项目中,"lib"目录下应该包含XStream的jar...
**XStream XML解析** XStream 是一个开源的 Java 库,它提供了一种简单而有效的方式来将 Java 对象序列化为 XML 和从 XML 反序列化回 Java 对象。这个库的强大之处在于其简洁的API和对复杂Java对象模型的处理能力。...
如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream <version>1.4.18 ``` 对于其他构建工具,如Gradle或 Ivy,也有相应的...
如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream <version>1.4.18 ``` 然后,你可以创建一个XStream实例,并配置它以处理...
Xstream是一款强大的Java库,用于实现Java对象与XML文档之间的转换。这种转换不仅支持基本数据类型,也适用于复杂的数据结构,包括自定义类和集合。Xstream的设计旨在简化序列化过程,使得开发者能够轻松地在Java...
xstream方式解析及生成xml文件
XStream是一款开源的Java库,用于简化XML文件的序列化与反序列化过程。它的设计理念是将XML数据映射到Java对象模型,反之亦然,而无需复杂的配置或显式的映射规则。XStream支持广泛的Java类型,并且易于集成到现有的...
如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream <version>1.4.15 ``` 一旦引入了Xstream,我们就可以开始定义我们的Java...
在压缩包中的"xml"文件可能是示例的XML数据,用于演示如何使用XStream进行序列化和反序列化操作。实际应用中,开发者可以根据这些知识对XML数据进行读取、解析和存储,提升开发效率和代码可读性。
例如,在Maven的pom.xml文件中,你可以添加如下依赖: ```xml <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream <version>1.4.18 ``` 接下来,假设我们有一个简单的Java类`Person`,我们...
如果你的项目是Maven工程,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream <version>1.4.19 ``` 对于Gradle项目,可以在build.gradle文件中...
在`xmlAnalysis`文件夹中,可能包含了一个简单的Java程序,演示了如何使用DOM、SAX、StAX和XStream解析XML文件,并展示了XStream如何在JavaBean与XML之间进行转换。你可以运行这些代码,观察输出结果,以加深理解。...
- `xmlpull-1.1.3.1.jar`:XML Pull API,它是轻量级的解析XML的库,用于XPP3。 5. **XML Pull Parsing**: - XML Pull Parsing是一种事件驱动的解析模型,与SAX类似,但更简单,不需要解析器的回调函数。XPP3库...
本文将介绍如何使用XStream解析xml文件,并将其转换成Java对象。 一、XStream简介 XStream是一个高性能的XML解析库,它可以将xml文件转换成Java对象,使得开发者可以方便地进行数据处理。XStream支持多种数据类型...
在XStream解析XML文件时,通常需要两个关键的jar包: 1. **xpp3_min-1.1.3.4.O.jar**:这是Minimal XML Pull Parser(XPP3)的轻量级版本,它是一个高效的XML解析器,用于读取XML文档。XPP3被XStream用来解析XML流...
例如,你可以使用`Document document = DocumentHelper.parseText(xmlString)`来解析XML文本,然后通过`Element root = document.getRootElement()`获取根元素。 3. **xpp3-1.1.4c.jar**: 这个库是XPull解析器的...
如果你的项目是Maven管理的,可以在pom.xml文件中添加如下依赖: ```xml <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream <version>1.4.17 ``` 一旦引入了XStream,我们可以创建一个简单的...
本教程将深入探讨如何使用XStream进行Java类与XML文件之间的互转解析。 首先,我们需要引入XStream库。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.thoughtworks.xstream</groupId> ...