XML报文解析
/**
* XML报文解析
* @param docStr
*/
private Map<String, Object> analysisXmlStr(String xmlStr) {
try {
Map<String, Object> analysisResultMap = new HashMap<>();
if (StringUtils.isEmpty(xmlStr)) {
return analysisResultMap;
}
org.dom4j.Document payResponseDoc = DocumentHelper.parseText(xmlStr);
org.dom4j.Element rootElement = payResponseDoc.getRootElement();
// Header
Node headerNode = rootElement.selectSingleNode("Header");
String status = headerNode.selectSingleNode("Status").getStringValue();
// Response
Node responseNode = rootElement.selectSingleNode("Response");
if (null == responseNode) {
return analysisResultMap;
}
Node orderStatusNode = responseNode.selectSingleNode("OrderStatus");
if (null == orderStatusNode) {
return analysisResultMap;
}
String orderStatus = orderStatusNode.getStringValue();
String platformCode = responseNode.selectSingleNode("PlatformCode").getStringValue();
String payAmount = responseNode.selectSingleNode("PayAmount").getStringValue();
String realPayAmount = responseNode.selectSingleNode("RealPayAmount").getStringValue();
String orderId = responseNode.selectSingleNode("OrderId").getStringValue();
// Response - TradeList
Node tradeListNode = responseNode.selectSingleNode("TradeList");
String batchNo = tradeListNode.selectSingleNode("TradeIfo").selectSingleNode("BatchDetailNo").getStringValue(); // 封装
analysisResultMap.put("status", status);
analysisResultMap.put("orderStatus", orderStatus);
analysisResultMap.put("platformCode", platformCode);
analysisResultMap.put("payAmount", payAmount);
analysisResultMap.put("realPayAmount", realPayAmount);
analysisResultMap.put("orderId", orderId);
analysisResultMap.put("batchNo", batchNo);
return analysisResultMap;
} catch (DocumentException e) {
logger.error("报文解析异常!", e);
}
return null;
}
XML报文解析的更多相关文章
- xml报文解析和组装
package com.xjts.cipher.util;import java.io.File;import java.io.FileWriter;import java.io.IOExceptio ...
- SOAP XML报文解析
import java.util.HashMap;import java.util.List;import java.util.Map; import org.dom4j.Document;impor ...
- Java开发笔记(一百零九)XML报文的定义和解析
前面介绍了JSON格式的报文解析,虽然json串短小精悍,也能有效表达层次结构,但是每个元素只能找到对应的元素值,不能体现更丰富的样式特征.比如某个元素除了要传输它的字符串文本,还想传输该文本的类型. ...
- java 写webservice接口解析xml报文
1 <!--解析xml报文--> 2 <dependency> 3 <groupId>dom4j</groupId> 4 <artifactId& ...
- xml报文的装配解析
xstream dom 将map自动转化为xml报文 http://blog.csdn.net/lisheng19870305/article/details/45847985 报文的通信
- 解析xml报文,xml与map互转
这段时间写了一个关于xml报文的工具类,做一下具体的讲解: xml文本 <NTMMessage version="1.03"> <NTMHeader> &l ...
- ISO8583报文解析
在此只写了一个8583报文的拆包,组包其实也差不多的. 不多说直接上文件, 具体思路过程,在解析类里面写的有. 其中包含了四个文件 8583resp.txt报文 ISO8583medata配置文件 B ...
- 报文解析及CRC类
/// <summary> /// 报文解析转换类 /// </summary> public class DatagramConvert { public static En ...
- 通过正则表达式实现简单xml文件解析
这是我通过正则表达式实现的xml文件解析工具,有些XHTML文件中包含特殊符号,暂时还无法正常使用. 设计思路:常见的xml文件都是单根树结构,工具的目的是通过递归的方式将整个文档树装载进一个Node ...
- JAVA 中XML的解析
XML: 可扩展标记语言(extensible Markup Language) 用于标记电子文件使其具有结构性的标记语言.XML可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定 ...
随机推荐
- shell脚本:报错syntax error near unexpected token `$'\r''解决方法
之前的shell脚本是在服务器上编写的,后来又已复制的方式存在在了电脑上,以txt文件的形式存放的.于是复制到了编辑工具中,进行了相应项的修改.修改完毕后,拿到服务器上测试,结果执行sh XXX.sh ...
- Exp6 MSF应用基础
目录 一.实践内容 1 一个主动攻击实践 漏洞介绍 1 攻击前的准备 2 执行攻击 2 一个针对浏览器的攻击 3 一个针对客户端的攻击,以office为例 4 辅助模块的使用 二.问题回答 1 用自己 ...
- NGAC下一代访问控制
NGAC,即下一代访问控制,采用将访问决定数据建模为图形的方法.NGAC 可以实现系统化.策略一致的访问控制方法,以高精细度授予或拒绝用户管理能力. 在这张图中,我们可以看到 /hr-docs 文件夹 ...
- SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = select list expression not produced by aggregation output (missing from GROUP BY clause?): ......
SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = select list expression not produced by aggregati ...
- 第二周day6
第二周day6,星期六 所花时间:0 代码量:0 搏客量:1 了解到的知识点:多锻炼.
- Py_excel
py_excel xlrd 读excel workbook = xlrd.open_workbook(file_path) sheet = workbook.sheet_by_name(sheet_n ...
- jdbc封装工具类(无连接池)
package com.huang; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepar ...
- raid 0 与raid 1的区别?
区别共有三点: 1.两者的概念不同: RAID 0:是多磁盘数据分组同步写读. RAID 1:是多磁盘同数据同步写读. 2.两者的安全性不同: RAID 0:无数据备份功能,安全性差. RAID 1: ...
- Linux 文件编码操作enca[适用Mac]
查看文件编码: enca file.csv 修改文件编码 enca -x UTF-8 file.csv
- lua-路径加载lua文件-函数返回值,访问lua文件中的变量
lua文件如下: print("ddhdhh")function login(username,pswd)if username =="ms" and pswd ...