java:利用xpath删除xml中的空节点
时间:2022-04-24
本文章向大家介绍java:利用xpath删除xml中的空节点,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
原始xml内容:
1 <data>
2 <a> </a>
3 <b>b1</b>
4 <awb>
5 <awbpre>123</awbpre>
6 <awbno></awbno>
7 </awb>
8 <spls>
9 <spl />
10 </spls>
11 </data>
可用下面的代码去掉 <awbno></awbno>、<spls><spl/></spls>这二个空节点 (注<a> </a>中间有一个空格,不算空节点)
1 @Test
2 public void testDeleteEmptyNode() throws DocumentException {
3 String xmlOrigin = "<data><a> </a><b>b1</b><awb><awbpre>123</awbpre><awbno></awbno></awb><spls><spl/></spls></data>";
4 SAXReader saxReader = new SAXReader();
5 Document document = saxReader.read(new ByteArrayInputStream(xmlOrigin
6 .getBytes()));
7
8 while (true) {
9 @SuppressWarnings("unchecked")
10 List<Element> list = document.selectNodes("//*[not(node())]");
11 if (list == null || list.size() <= 0) {
12 break;
13 }
14 for (Element e : list) {
15 System.out.println(e.getName());
16 e.getParent().remove(e);
17 }
18 }
19 System.out.println(document.asXML());
20
21 }
以上代码使用了dom4j
输出内容:
awbno spl spls <?xml version="1.0" encoding="UTF-8"?> <data><a> </a><b>b1</b><awb><awbpre>123</awbpre></awb></data>
即:
1 <data>
2 <a> </a>
3 <b>b1</b>
4 <awb>
5 <awbpre>123</awbpre>
6 </awb>
7 </data>
- 基于input子系统的sensor驱动调试(二)
- 编程语言中的闭包
- 《Redis设计与实现》读书笔记(二十八) ——Redis集群节点结构与槽分配
- Linux RCU 机制详解
- 《Redis设计与实现》读书笔记(二十九) ——Redis集群执行命令与重新分片
- 如何使用C语言的面向对象
- 《Redis设计与实现》读书笔记(三十) ——Redis集群节点复制与故障转移
- 掌握一点儿统计学
- 高通HAL层之bmp18x.cpp
- Oracle 数据库之最:你见过最高的 SQL Version 是多少?
- Android 子activity关闭 向父activity传值
- 《Redis设计与实现》读书笔记(三十一) ——Redis集群消息类型
- 统计学中的相关性分析
- 《Redis设计与实现》读书笔记(三十二) ——Redis事务设计与实现
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释