Java解析xml的响应报文

Java解析xml的响应报文响应报文返回信息:<?xmlversion=”1.0″encoding=”GBK”?><ROOT><HEAD><DemoCode></DemoCode><ChanCode>11</ChanCode><DemoCent></DemoCent><DemoGlb></DemoGlb><DemoBank>&l

大家好,又见面了,我是你们的朋友全栈君。

响应报文返回信息:

<?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账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号