前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java:利用xpath删除xml中的空节点

java:利用xpath删除xml中的空节点

作者头像
菩提树下的杨过
发布2018-01-24 11:02:25
2.4K0
发布2018-01-24 11:02:25
举报
文章被收录于专栏:菩提树下的杨过

原始xml内容:

代码语言:javascript
复制
 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>中间有一个空格,不算空节点)

代码语言:javascript
复制
 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>

即:

代码语言:javascript
复制
1 <data>
2   <a> </a>
3   <b>b1</b>
4   <awb>
5     <awbpre>123</awbpre>
6   </awb>
7 </data>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-04-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档