java:利用xpath删除xml中的空节点
原始xml内容:
<data>
<a> </a>
<b>b1</b>
<awb>
<awbpre>123</awbpre>
<awbno></awbno>
</awb>
<spls>
<spl />
</spls>
</data>
可用下面的代码去掉 <awbno></awbno>、<spls><spl/></spls>这二个空节点 (注<a> </a>中间有一个空格,不算空节点)
@Test
public void testDeleteEmptyNode() throws DocumentException {
String xmlOrigin = "<data><a> </a><b>b1</b><awb><awbpre>123</awbpre><awbno></awbno></awb><spls><spl/></spls></data>";
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new ByteArrayInputStream(xmlOrigin
.getBytes())); while (true) {
@SuppressWarnings("unchecked")
List<Element> list = document.selectNodes("//*[not(node())]");
if (list == null || list.size() <= 0) {
break;
}
for (Element e : list) {
System.out.println(e.getName());
e.getParent().remove(e);
}
}
System.out.println(document.asXML()); }
以上代码使用了dom4j
输出内容:
awbno
spl
spls
<?xml version="1.0" encoding="UTF-8"?>
<data><a> </a><b>b1</b><awb><awbpre>123</awbpre></awb></data>
即:
<data>
<a> </a>
<b>b1</b>
<awb>
<awbpre>123</awbpre>
</awb>
</data>
java:利用xpath删除xml中的空节点的更多相关文章
- [Java] 通过XPath获取XML中某个节点的属性
/** * Get PA Url * @author jzhang6 * @return url */ public String getPAUrl(){ String PAUrl = "& ...
- shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容
shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容 删除命令对照表 命令 含义 1d 删除第一行内容 ,10d 删除1行到10行的内容 ,+5d 删除10行到16行的内容 /p ...
- (转载)读取xml中的指定节点的值
/// <summary> /// 读取xml中的指定节点的值 /// </summary> private st ...
- 读取xml中的指定节点的值
/// <summary> /// 读取xml中的指定节点的值 /// </summary> private string ReadXmlNode(string filenam ...
- 【剑指offer】删除链表中重复的节点,C++实现(链表)
0.简介 本文是牛客网<剑指offer>笔记. 1.题目 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针.例如,链表1-> ...
- php实现删除链表中重复的节点
php实现删除链表中重复的节点 一.总结 二.php实现删除链表中重复的节点 题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1 ...
- JAVA通过XPath解析XML性能比较(原创)
(转载请标明原文地址) 最近在做一个小项目,使用到XML文件解析技术,通过对该技术的了解和使用,总结了以下内容. 1 XML文件解析的4种方法 通常解析XML文件有四种经典的方法.基本的解析方式有两种 ...
- 利用XPath读取Xml文件
之所以要引入XPath的概念,目的就是为了在匹配XML文档结构树时能够准确地找到某一个节点元素.可以把XPath比作文件管理路径:通过文件管理路 径,可以按照一定的规则查找到所需要的文件:同样,依据X ...
- JAVA通过XPath解析XML性能比较
转自[http://www.cnblogs.com/mouse-coder/p/3451243.html] 最近在做一个小项目,使用到XML文件解析技术,通过对该技术的了解和使用,总结了以下内容. 1 ...
随机推荐
- linux常用命名复习
ubuntu sysv-rc-conf 用来管理自启动项 centos chkconfig 1. ls命令ls命令是列出目录内容(List Directory Contents)的意思.运行它就 ...
- 从Prototype学习JavaScript面向对象编程
概述 JavaScript是一种基于对象的编程语言.它是灵活的,既有面向过程(也就是面向函数)的编程,也有面向对象的编程.因此我称它是基于对象的编程语言. 对于JavaScript的面向过程的编程特性 ...
- 0020 Java学习笔记-面向对象-变量
变量分为哪些 成员变量:类里面,方法外面定义的变量 实例变量:没有用static修饰的变量,属于对象:存在期:创建实例-销毁实例:作用域:与该实例的生存范围相同 类变量:用static修饰的变量,属于 ...
- SQL Server调优系列玩转篇(如何利用查询提示(Hint)引导语句运行)
前言 前面几篇我们分析了关于SQL Server关于性能调优的一系列内容,我把它分为两个模块. 第一个模块注重基础内容的掌握,共分7篇文章完成,内容涵盖一系列基础运算算法,详细分析了如何查看执行计划. ...
- android 判断字符串是否为空与比对["=="与equals()的区别]
if (s == null || s.equals("")) ; } s.equals("")里面是要比对的字符串 声明字符串未赋初始值或值,然后比对就会出错, ...
- 制作OS X 10.9 Mavericks 安装U盘
转载:http://www.macx.cn/forum.php?mod=viewthread&tid=2094799 安装win7的话,在mac中使用bootcamp制作一个win7安装盘即可 ...
- FastCV安装报错---LaunchAnyWhere错误:载入Java VM时Windows出现错误:2
- IIS中查看W3P.exe进程对应的应用程序池的方法
对于IIS6可以运行 iisapp -a来显示应用程序池的性能列表. iisapp.vbs它是一个脚本程序,在安装2003时需要SP1才有 而IIS7可以直接用它的外壳命令 C:"Windo ...
- Nagios 自定义插件与安装使用之监控dead datanodes
现在我使用nagios来监控hadoop的核心进程,rm,nm,dn,nn,zkfc,jn,zk等,但是有时候进程虽然还在,但是日志不刷新,web ui上可以看到有些datanodes节点已经变为de ...
- Openxml入门---Openxm读取Excel数据
Openxml读取Excel数据: 有些问题,如果当Cell 里面是 日期和浮点型的话,对应的Cell.DataType==Null,对应的时间会转换为一个浮点型,对于这块可以通过DateTime.F ...