• 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>
  • 相关阅读:
    Nginx配置文件的路径
    有关Tomcat 8.5版本文件上传后无权限访问的问题
    常见HTTP状态码列表
    服务器BMC(带外)
    CDN问题
    PECE
    linux系统概述
    干货--整蛊你的舍友
    arp请求与回复
    huawei oceanstor
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/use-xpath-delete-empty-node.html
Copyright © 2020-2023  润新知