大家好,又见面了,我是你们的朋友全栈君。
响应报文返回信息:
<?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的四种解析方式
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145119.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...