2019独角兽企业重金招聘Python工程师标准>>>

我们拿支付宝对账的订单来解析。

上面的截图是,支付宝对账结果的一部分数据。下面我写下具体的代码:

private Map<String, Object> xmlToMap(InputStream inputStream){Map<String, Object> resultMap = new HashMap<String, Object>();SAXReader reader = new SAXReader();List<AccountQueryAccountLogVO> accountQueryAccountLogVOs = new ArrayList<AccountQueryAccountLogVO>();try {org.dom4j.Document doc = reader.read(inputStream);//获取alipay节点以下的所有子节点List<Node> nodeList = doc.selectNodes("//alipay/*");for (Node node : nodeList) {String nodeName = node.getName();//判断是否有成功标示if ("is_success".equals(nodeName) && node.getText().equals("T")) {//解析响应的内容信息List<Node> tempList = doc.selectNodes("//response/account_page_query_result/*");if (tempList != null && tempList.size() > 0) {for (Node node1 : tempList) {String tempNodeName = node1.getName();String tempNodeText = node1.getText();if ("has_next_page".equals(tempNodeName)) {LOGGER.debug("是否有下一页:{}", "T".equals(tempNodeText) ? true : false);resultMap.put("has_next_page", "T".equals(tempNodeText) ? true : false);}if ("page_no".equals(tempNodeName)) {LOGGER.debug("当前页码:{}", tempNodeText);resultMap.put("page_no", tempNodeText);}if ("page_size".equals(tempNodeName)) {LOGGER.debug("每页显示条数:{}", tempNodeText);}if ("account_log_list".equals(tempNodeName)) {List<Node> accountLogs = node1.selectNodes("AccountQueryAccountLogVO");for (Node accountLog : accountLogs) {AccountQueryAccountLogVO accountQueryAccountLogVO = new AccountQueryAccountLogVO();//商户订单号String merchant_out_order_no = accountLog.selectSingleNode("merchant_out_order_no").getText();//支付宝交易号String trade_no = accountLog.selectSingleNode("trade_no").getText();//只匹配客户端充值的信息if (pattern.matcher(trade_no).matches()) {//todo}if (StringUtils.isNoneBlank(merchant_out_order_no)) {accountQueryAccountLogVO.setMerchant_out_order_no(merchant_out_order_no);}if (StringUtils.isNotBlank(trade_no)) {accountQueryAccountLogVO.setTrade_no(trade_no);}accountQueryAccountLogVOs.add(accountQueryAccountLogVO);}resultMap.put("rows", accountQueryAccountLogVOs);}}}}}} catch (Exception e) {LOGGER.error("解析遇到bug{}", e.getMessage());}LOGGER.debug("==============解析xml结束,共收集客户端账单条数:{}", accountQueryAccountLogVOs.size());return resultMap;
}

转载于:https://my.oschina.net/rightemperor/blog/888254

dom4j解析xml的简单实用相关推荐

  1. Dom4j 解析Xml文档及XPath查询 学习笔记

    本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" -- 在当前浏览器页面,按键 "Ctrl+F" 按键 ...

  2. Dom4j 解析Xml文档及 XPath查询 学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" ...

  3. dom4j解析XML入门指北

    不知道为啥刚发布就直接被删除了,回收站找到的,很蛋疼= = 直接复制网页代码勉强恢复了,不过代码显示就很渣了 Dom4j是一个易用的.开源的库,用于XML,XPath和XSLT.它应用于Java平台, ...

  4. XML简介与Dom4j解析XML

    文章目录 一.XML简介 1.什么是 XML 2.XML 的主要作用 3.XML 与 HTML 4.XML 属性 5.XML语法规则 二.Dom4j解析XML 1.树结构与xml文件的解析技术 1.1 ...

  5. Dom4j解析XML(详解)

    1.XML解析的方式介绍 在日常开发中常见的XML解析方式有如下两种: 1.DOM解析 DOM解析要求解析器将整个XML文件全部加载到内存中,生成一个Document对象. 1.优点:元素和元素之间保 ...

  6. Java - Dom4J解析XML

    1.XML解析的方式 DOM: 要求解析器将整个XML文件全部加载到内存中,生成一个Document对象 1.优点:元素和元素之间保留结构,关系,可以针对元素进行CURD操作. 2.缺点:如果XML文 ...

  7. java dom4j解析xml 对象_Java XML解析 - 利用DOM4j解析XML

    Java XML解析 - 利用DOM4j解析XML dom4j是一个简单的开源库,用于处理XML. XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP ...

  8. xml文件解析 (DOM4J解析XML) -java

    文章目录 前言 一.本地XML解析 1.导包并配置 1.在项目下新建lib文件夹,并把jar包导入. 2.更改项目配置 2.编写一个简单的本地XML文件 3.解析本地XML文件: 二.解析网络上的XM ...

  9. java jdom dom4j_Java基础系列17:使用DOM、SAX、JDOM、DOM4J解析XML文件详解

    一 简介 在Java中,可以使用多种方式来解析XML文件,其中最常见的可能就是DOM.SAX.JDOM.DOM4J这四种方式了.其中,DOM和SAX这两种解析XML文件的方式有jdk自带的API,因此 ...

最新文章

  1. java 异常处理
  2. Linux 系统的启动顺序
  3. 影院平台搭建 - (6)一个靠谱的视频播放方案的感想
  4. python代码自动生成器下载_Python代码生成器
  5. 博士笔记 | 周志华《机器学习》手推笔记第三章-线性模型
  6. 使用python制作二维码
  7. 引用管理器没有程序集_程序员必背英语单词不会,就别说你是程序员!
  8. shouldoverrideurlloading为什么有时候不走_为什么付出越多,对方就越不懂得感恩,婚姻有时候也需要斤斤计较...
  9. Mysql orangepi_SSH远程登录香橙派Orange Pi Zero2开发板的操作方法
  10. python识别复杂验证码2020_Python识别验证码!学会这步,百分之60的网站你基本都能识别了!...
  11. 通过导航栏切换页面动画
  12. 共享打印机提示服务器没有运行,winXP共享打印机提示“工作站服务没有启动”|没有启动服务器Workstation服务...
  13. 塔式太阳能热发电技术在我国发展现状与前景分析
  14. 赛狐ERP「价格利润试算」——精准定价 保证利润最大化
  15. LaTex 表格的单元格划横线,分成两部分
  16. 通过bat来实现 以Notepad++打开某个指定文件
  17. NPOI导出Excel2007-xlsx格式文件,用于web时需要注意的问题-XSSFWorkbook处理问题
  18. 如何增加你的被动收入
  19. np.add.at和np.negative.at
  20. java 广告sdk开发_supersonicads广告sdk逆向分析以及无源码debug java

热门文章

  1. C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
  2. linux 按键驱动中断 rockchip_7.自己写中断方式按键驱动程序(详解)
  3. Spring MVC拦截器~~~登陆验证拦截
  4. c语言双向链表 快速排序,双向链表的快速排序(swift版本)
  5. mysql 命令 utf8_Mysql 统一设置utf8字符
  6. 软件工程—个人作业(8)
  7. Luogu P4774 / LOJ2721 【[NOI2018]屠龙勇士】
  8. 图论算法在机试实现中的一些技巧和陷阱
  9. Undefined symbols for architecture xxx
  10. 最初版本的simplecall是如何把2个callleg连起来的