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可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定 ...
随机推荐
- Spring的AOP源码解析(一)
Spring AOP 使用介绍,从前世到今生 前面写过 Spring IOC 的源码分析,很多读者希望可以出一个 Spring AOP 的源码分析,不过 Spring AOP 的源码还是比较多的,写出 ...
- div里元素横向排列 居中对齐
<div> <img src="//s.weituibao.com/1582958061265/mlogo.png" alt=&quo ...
- CentOS7安裝 Nginx + php7 + php-fpm
原文 : https://ivanagyro.medium.com/於centos7安裝-nginx-php7-php-fpm-laravel5-6-df8631681acf安装nginx 1/ 用y ...
- js-防抖(简易版)
/** * 节流函数 */ var count = 1; var container = document.getElementById('container'); function getUse ...
- 【C++】【纯代码】获取电脑的mac地址
bool GetMacAddress(CString &LanMAC) { #define MAX_ADAPTER_NAME_LENGTH 256 #define MAX_ADAPTER_DE ...
- csdn 复制
$("#content_views pre").css("user-select","text"); $("#content_vi ...
- 虚拟机redis无法连接
1.cp redis.conf /etc/ 2.vi /etc/redis.conf 3.设置 Redis 可以后台运行 daemonize yes 4.关闭 redis 保护模式,使得可以远程连接 ...
- 树莓派,脚本遍历当前目录下视频文件,并用omxplayer播放
事先准备好视频文件,文件名内包含视频尺寸信息,以方便构造 --win "x1 y1 x2 y2" 字符串. 通过 omxplayer -i filename 可查看视频尺寸 ...
- Pyscript使用本地Pyodide配置方法
背景 Pyscript工程本身很小,KB级别,引用的Pyodide工程比较大,因为包含了各种类库的wasm文件,默认引用了cdn上的文件,cdn上的文件又在外网,访问会中断导致不可用,于是需要使用本地 ...
- HybridCLR热更新方案
Hybrid指的是混合开发,CLR指的是公共语言运行库(Common Language Runtime)->托管代码执行核心中的引擎.前身叫做huatuo git示例项目地址为https://g ...