Java中使用SAXReader获取xml信息中所有标签的key和value,若是有二级或者继续嵌套,也可以递归获取的代码实例

/*** @author LiXuekai on 2020/7/26*/
public class XmlTest2 {private static final String XML_INFO = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +"<ROOT type=\"response\">\n" +"    <x>20200715</x>\n" +"    <a>0</a>\n" +"    <c>" +"        <lxk0>100</lxk0>" +"        <lxk1>200</lxk1>" +"    </c>\n" +"    <d>N</d>\n" +"    <e/>\n" +"    <f>00000</f>\n" +"    <g>1001045</g>\n" +"    <LIST/>\n" +"</ROOT>";@Testpublic void parse() throws DocumentException {SAXReader sr = new SAXReader();Document doc = sr.read(new ByteArrayInputStream(XML_INFO.getBytes(StandardCharsets.UTF_8)));Element root = doc.getRootElement();getChildNodes(root);}public static void getChildNodes(Element element) {Map<String, Object> map = Maps.newHashMap();String keyPrefix = "pre";forkv0(keyPrefix, map, element);//forkv1(element);//forkv2(element);out(map);}private static void out(Map<String, Object> map) {for (Map.Entry<String, Object> entry : map.entrySet()) {System.out.println(entry.getKey() + "  " + entry.getValue());}}private static void forkv0(String keyPrefix, Map<String, Object> map, Element element) {List elements = element.elements();for (Object o : elements) {try {Element e = (Element) o;String name = e.getName();Object data = e.getData();int size = e.elements().size();if (size > 0) {String newKey = keyPrefix + "_" + name;forkv0(newKey, map, e);} else {map.put(keyPrefix + "_" + name, data);}//System.out.println("key is " + name + " ; value is " + data + " ; size is " + size);} catch (Exception ex) {System.out.println(ex);}}}private static void forkv2(Element element) {System.out.println(element.getName());Iterator<Node> it = element.nodeIterator();while (it.hasNext()) {Node node = it.next();//只有标签节点才有子节点 所以判断这个节点是否是标签节点if (node instanceof Element) {Element element1 = (Element) node;forkv2(element1);}}}private static void forkv1(Element element) {Iterator iterator = element.elementIterator();while (iterator.hasNext()) {Element next = (Element) iterator.next();Object data = next.getData();System.out.println(next.getName() + "  " + data);}}
}

Java 解析xml 使用SAXReader获取所有标签的key和value的代码实例相关推荐

  1. dom4j解析xml格式字符串获取标签属性和内容

    /*** 解析xml字符串,获取各项属性内容* readXML方法描述:* * @author : gc* @createTime : 2019-4-26 下午4:37:50*/private sta ...

  2. java解析XML saxReader.read(xml) 错误:org.dom4j.DocumentException: no protocol

    java解析XML saxReader.read(xml) 错误:org.dom4j.DocumentException: no protocol 完整错误信息: org.dom4j.Document ...

  3. Java 解析 XML

    Java 解析 XML 标签: Java基础 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象 优点 ...

  4. Java解析Xml的三种方式总结

    转自:http://blog.csdn.net/zjf280441589/article/details/50613881 XML解析技术有两种 DOM SAX DOM方式  根据XML的层级结构在内 ...

  5. JAVA解析xml的五种方式比较

    1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取和操作文档的任意部分,是W3C的官方标准[优点]①允许应用 ...

  6. Java解析xml文件dom4j篇(基于xml配置文件完成Excel数据的导入、导出功能完整实现)

    DOM4J解析XML文件 dom4j是一个Java的XML API,是jdom的升级产品,用来读写XML文件.另外对比其他API读写XML文件,dom4j是一个十分优秀的JavaXML API,具有性 ...

  7. 详解Java解析XML的四种方法

    http://developer.51cto.com  2009-03-31 13:12  cnlw1985  javaeye  我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...

  8. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax;import org.xml.sax.Attributes; import org.xml.sax.SAXEx ...

  9. xml教程之java解析xml文档

    1.java解析xml文件介绍 XML解析方式分为两种:DOM方式和SAX方式 DOM:Document Object Model,文档对象模型.这种方式是W3C推荐的处理XML的一种方式. SAX: ...

最新文章

  1. python实现简单的情感分析
  2. JSP实现停车场收费管理系统
  3. u盘变o字节怎么修复_U盘启动盘在重装系统时识别不了解决办法
  4. unity3d中画线有几种方式_Spring RestTemplate中几种常见的请求方式
  5. [SAP-SD]Sales Order 中的User Exit开发
  6. Linux学习之后台运行进程
  7. java web 密码修改,【67彩手机客户端】-平台网站
  8. DisplayLink 安装错误
  9. Scalaz(49)- scalaz-stream: 深入了解-Sink/Channel
  10. postman虚拟服务器教程,postman安装与使用教程
  11. SoX 音频处理工具使用方法
  12. matlab查看剪贴板图片,怎么把图片,txt文档复制到剪贴板中?
  13. 微信公众号开发工具类
  14. 《奋斗》中徐志森的生意经
  15. 【Pytorch神经网络理论篇】 34 样本均衡+分类模型常见损失函数
  16. 用Nonebot2搭建QQ机器人(一):我的学习经历(一)
  17. 机械行业想转行IT互联网行业,大家有什么好的建议?
  18. 【论文笔记】:CornerNet: Detecting Objects as Paired Keypoints
  19. 机械键盘指南!告别码字疲劳!
  20. Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流

热门文章

  1. python程序设计题库-python编程题库
  2. 不伤原图电脑在线去水印网站
  3. ipv4地址的编码长度为_IPv4 中IP地址的长度为 ( ) 位,IPv6中IP地址的长度位 ( ) 位。_建筑施工技术答案_学小易找答案...
  4. 水星路由器wan口ip显示0_路由器wan口ip地址显示0.0.0.0怎么办(2)
  5. Android开发指南-二维图形
  6. 日语输入法使用技巧!
  7. 手机怎样转换php格式,手机视频格式转换方法适合所有手机视频格式转换|如何转换手机视频格式...
  8. 【HTML | 模板】自定义 商品列表 (商品表格)
  9. 二重积分x^2+y^2_计算二重积分∫∫(x^2+y^2+x)dxdy,其中D为区域x^2+y^2=1
  10. 获取微信昵称乱码php,Android 微信登录昵称乱码问题,及获取微信用户信息