Java 解析xml 使用SAXReader获取所有标签的key和value的代码实例
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的代码实例相关推荐
- dom4j解析xml格式字符串获取标签属性和内容
/*** 解析xml字符串,获取各项属性内容* readXML方法描述:* * @author : gc* @createTime : 2019-4-26 下午4:37:50*/private sta ...
- java解析XML saxReader.read(xml) 错误:org.dom4j.DocumentException: no protocol
java解析XML saxReader.read(xml) 错误:org.dom4j.DocumentException: no protocol 完整错误信息: org.dom4j.Document ...
- Java 解析 XML
Java 解析 XML 标签: Java基础 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象 优点 ...
- Java解析Xml的三种方式总结
转自:http://blog.csdn.net/zjf280441589/article/details/50613881 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内 ...
- JAVA解析xml的五种方式比较
1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取和操作文档的任意部分,是W3C的官方标准[优点]①允许应用 ...
- Java解析xml文件dom4j篇(基于xml配置文件完成Excel数据的导入、导出功能完整实现)
DOM4J解析XML文件 dom4j是一个Java的XML API,是jdom的升级产品,用来读写XML文件.另外对比其他API读写XML文件,dom4j是一个十分优秀的JavaXML API,具有性 ...
- 详解Java解析XML的四种方法
http://developer.51cto.com 2009-03-31 13:12 cnlw1985 javaeye 我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...
- java解析xml的三种方法
java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax;import org.xml.sax.Attributes; import org.xml.sax.SAXEx ...
- xml教程之java解析xml文档
1.java解析xml文件介绍 XML解析方式分为两种:DOM方式和SAX方式 DOM:Document Object Model,文档对象模型.这种方式是W3C推荐的处理XML的一种方式. SAX: ...
最新文章
- python实现简单的情感分析
- JSP实现停车场收费管理系统
- u盘变o字节怎么修复_U盘启动盘在重装系统时识别不了解决办法
- unity3d中画线有几种方式_Spring RestTemplate中几种常见的请求方式
- [SAP-SD]Sales Order 中的User Exit开发
- Linux学习之后台运行进程
- java web 密码修改,【67彩手机客户端】-平台网站
- DisplayLink 安装错误
- Scalaz(49)- scalaz-stream: 深入了解-Sink/Channel
- postman虚拟服务器教程,postman安装与使用教程
- SoX 音频处理工具使用方法
- matlab查看剪贴板图片,怎么把图片,txt文档复制到剪贴板中?
- 微信公众号开发工具类
- 《奋斗》中徐志森的生意经
- 【Pytorch神经网络理论篇】 34 样本均衡+分类模型常见损失函数
- 用Nonebot2搭建QQ机器人(一):我的学习经历(一)
- 机械行业想转行IT互联网行业,大家有什么好的建议?
- 【论文笔记】:CornerNet: Detecting Objects as Paired Keypoints
- 机械键盘指南!告别码字疲劳!
- Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流
热门文章
- python程序设计题库-python编程题库
- 不伤原图电脑在线去水印网站
- ipv4地址的编码长度为_IPv4 中IP地址的长度为 ( ) 位,IPv6中IP地址的长度位 ( ) 位。_建筑施工技术答案_学小易找答案...
- 水星路由器wan口ip显示0_路由器wan口ip地址显示0.0.0.0怎么办(2)
- Android开发指南-二维图形
- 日语输入法使用技巧!
- 手机怎样转换php格式,手机视频格式转换方法适合所有手机视频格式转换|如何转换手机视频格式...
- 【HTML | 模板】自定义 商品列表 (商品表格)
- 二重积分x^2+y^2_计算二重积分∫∫(x^2+y^2+x)dxdy,其中D为区域x^2+y^2=1
- 获取微信昵称乱码php,Android 微信登录昵称乱码问题,及获取微信用户信息