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的四种解析方式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145119.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2022跨年代码(有烟花)「建议收藏」

    马上就要到春节了,于是写了一个跨年倒计时代码,祝大家在新的一年里:所念的人平安喜乐,所想的事顺心如意。代码:<!doctypehtml><html><head><metacharset=”utf-8″><title>新年快乐</title><!–这是网页标题–><style>body{overflow:hidden;margin:0;}h1{position:

    2022年4月6日
    85
  • sklearn安装教程_sklearn库的使用

    sklearn安装教程_sklearn库的使用Sklearn(全称Scikit-Learn)是基于Python语言的机器学习工具,是机器学习中的常用第三方模块。它建立在NumPy,SciPy和Matplotlib之上。因此,在安装sklearn之前,需要先安装其三个依赖库numpy+scipy+matplotlib,具体安装步骤如下:1.进入官网下载相应的模块安装地址如下https://www.lfd.uci.edu/~gohlke/pythonlibs网站中包含了python中所需的子库。进去之后查找比较麻烦,可以在网址后

    2022年10月18日
    1
  • 多模型融合权重如何训练_单因子模型

    多模型融合权重如何训练_单因子模型本篇文章有别于传统的多因子研究,我们并未将重点放在阿尔法因子的挖掘上,而是通过对股票组合的权重优化计算,找到了在市值中性、行业中性、风格因子中性约束下的最优投资组合,以及验证得到的组合权重是否满足了约束条件。结构化多因子风险模型首先对收益率进行简单的线性分解,分解方程中包含四个组成部分:股票收益率、因子暴露、因子收益率和特质因子收益率。那么,第只股票的线性分解如下所示:rj=x1f1+x2f2+x3f3+x4f4⋅⋅⋅⋅xKfK+ujr_j=x_1f_1+x_2f_2+x_3f_3+x_4f_4···

    2022年10月6日
    0
  • telnet远程登录AAA认证

    telnet远程登录AAA认证R1<Huawei>system-view//进入全局配置模式[Huawei]sysnameR1//改名[R1]undoinfo-centerenable//关闭信息告警提示[R1]interfaceg0/0/0//进入g/0/0接口[R1-GigabitEthernet0/0/0]ipaddress192.168.100…

    2022年6月7日
    36
  • 总计划组属性控制

    总计划组属性控制

    2021年8月24日
    65
  • 实现公告栏无缝滚动的js代码(转)「建议收藏」

    实现公告栏无缝滚动的js代码(转)「建议收藏」<!DOCTYPEHTML><html><head><metacharset="gb2312"/><title&

    2022年7月1日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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