Java解析xml的响应报文
2023-06-13 09:11:31 时间
大家好,又见面了,我是你们的朋友全栈君。
响应报文返回信息:
<?xml version="1.0" encoding="GBK"?>
<ROOT>
<HEAD>
<DemoCode></DemoCode>
<ChanCode>11</ChanCode>
<DemoCent></DemoCent>
<DemoGlb></DemoGlb>
<DemoBank></DemoBank>
<DemoTell></DemoTell>
<Code>000</Code>
<Msg>交易成功</Msg>
<Date>20200909</Date>
<Time>093035</Time>
<TrsCode>6029</TrsCode>
<TrsChild></TrsChild>
<DemoSerial>1599615034960</DemoSerial>
</HEAD>
<BODY>
<total>500</total>
<pagesize>19</pagesize>
<rows>
<xh>70</xh>
<demo>1310000000</demo>
<company>阿里巴巴</company>
<zxjedhwe>C11112</zxjedhwe>
</rows>
<rows>
<xh>71</xh>
<demo>13110000000</demo>
<company>宇宙无敌天下商会</company>
<zxjedhwe>C11114</zxjedhwe>
</rows>
<rows>
<xh>72</xh>
<demo>140900000</demo>
<company>娃哈哈有限公司</company>
<zxjedhwe>C11111</zxjedhwe>
</rows>
</BODY>
</ROOT>
采用DOM4J解析
特征:
1、JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能。
2、它使用接口和抽象基本类方法。
3、具有性能优异、灵活性好、功能强大和极端易用的特点。
4、是一个开放源码的文件
以下是解析代码:
/** * 解析响应报文 * * @param resMsgXml 响应报文xml * @return * @throws Exception */
private static ResultJson parsingXml(String resMsgXml) throws Exception {
JSONObject json = new JSONObject();
Document doc = DocumentHelper.parseText(resMsgXml); // 将字符串转为XML
Element rootElt = doc.getRootElement(); // 获取根节点
Iterator iter = rootElt.elementIterator("HEAD"); // 获取根节点下的子节点head
// 遍历head节点
while (iter.hasNext()) {
Element recordEle = (Element) iter.next();
String resCode = recordEle.elementTextTrim("Code"); // 拿到head节点下的子节点值
if (!("000".equals(resCode))) {
log.info("解析报文返回失败信息resMsgXml:" + resMsgXml);
String resMsg = recordEle.elementTextTrim("Msg"); // 拿到head节点下的子节点值
return ResultJson.setErrorMsg(resMsg);
}
}
Iterator iterss = rootElt.elementIterator("BODY"); //获取根节点下的子节点body
// 遍历body节点
List<Object> list = new ArrayList<>();
while (iterss.hasNext()) {
Element book = (Element) iterss.next();
Iterator iterss2 = book.elementIterator("rows"); //获取body节点下的子节点rows
while (iterss2.hasNext()) {
Element recordEless = (Element) iterss2.next();
String fileName = recordEless.elementTextTrim("company");
JSONObject jsonObject = new JSONObject();
jsonObject.put("company",fileName);
list.add(jsonObject);
}
}
if(list.size()>0){
return ResultJson.setSucessData(list);
}
return ResultJson.setErrorMsg("没有信息");
}
XML解析——Java中XML的四种解析方式
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145119.html原文链接:https://javaforall.cn
相关文章
- java解析xml element_java解析XML Node与Element的区别(推荐)「建议收藏」
- java volatile关键字的作用_Java并发编程彻底搞懂volatile关键字「建议收藏」
- java jquery 文件下载_jquery下载教程_jquery下载文件到指定的目录
- excel宏 java,Microsoft Excel宏运行Java程序
- java图书馆新地址_值得你关注的16个顶级 Java 开源项目!小白必看
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- xml格式化 java_Java XML格式化程序
- hashmap遍历取值_java map遍历
- Deep Java Library_java atomicinteger
- java创建线程池的几种方式_Java中的线程池
- Java八大常用类(三) String类(重要,重点掌握)
- Java编程题_面向对象和常用API01_B级
- Java利用dom4j生成xml文件、解析XML详解编程语言
- java操作mongoDB实现CURD详解大数据
- XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax详解编程语言
- 【Java】synchronized及其实现原理详解编程语言
- 时间深入理解Redis中Java设置的过期时间(redisjava过期)
- 清理Redis Java过期数据的自动清理实现(redisjava过期)
- 深入浅出Java Redis原理(javaredis原理)
- Oracle与Java的结合图像处理的快速开发(java图片oracle)