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可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定 ...
随机推荐
- 074_Wrapper_Class
https://developer.salesforce.com/page/Wrapper_Class http://www.sfdcpoint.com/salesforce/wrapper-clas ...
- vs MFC c++ rc文件的dilog打不开,显示加载失败
最近在做一个项目,在vs2012上面用mfc画界面,由于没有确定好且不熟悉这个架构,控件类型变了又变,本人又是个有点强迫症的性格所以删掉了一些不用的控件,导致的结果就是上面说的,dialog打不开报加 ...
- Array方法学习总结
Array 对象支持在 单个变量名下存储多个元素. Array方法: 在遍历多个元素的方法中,下面的方法在访问索引之前执行in检查,并且不将空槽与undefined合并:concat() 返回一个新数 ...
- Eclipse 获取maven项目出现问题汇总
1.errors occurred during the build,可以试试加上下图的配置,路径根据自己jak安装路径去修改
- 把pyecharts动图导入到PPT中
如何把echarts 动图导入PPT 置顶 且听风来 2019-05-22 14:54:17 3347 收藏 6展开 首先看PPT是否开启插件,开启后 此处就有标志,然后就在你想插入的幻灯片处插入两个 ...
- 用Docker搭建GIS本地化服务
在Linux系统上安装docker 1. 脚本安装(安装的是最新版,也可能是不稳定版) wget -qO- https://get.docker.com/ | sh sudo usermod -aG ...
- 使用MVC编程模型通过flask蓝图实现前端后台新闻发布系统
相关知识点: flask:是Python开发轻量级框架,也能很好的开发动态网站. 蓝图:flask中蓝图能很好的实现代码分割管理,从而不使代码全部放在app.py杂乱无章,蓝图就像动物管理员一样,把猫 ...
- py07-文件处理
"""什么是文件? 操作系统提供给用户操作复杂硬件(硬盘)的简易的接口 为什么操作文件 人或者应用程序需要永久的保存数据 如何用 f = open() f.read() ...
- shell脚本,shell语法和结构(以Cshell/TC shell为例)
1.C shell/TC shell常用语法和结构 (1) shbang行: #!/bin/sh,通知内核使用哪种内核解释脚本; #!/bin/csh 或 #!/bin/tcsh (2) 注释: 以# ...
- Markdown中如何让# * >等符号原样显示,不转义解析成对应Markdown语法
加\转义: * markdown 中如果遇到有字符与原有语法冲突, 可以使用反引号"`"包裹需要转移的内容. * 反引号位于键盘左上角Esc下面的位置 示例: # * > 原 ...