java dom4j xpath删除xml中的所有空节点

java dom4j xpath自动识别xml中的所有空接点,并删除。下面举例说明xpath删除所有空节点

//原始xml
<data>
  <a> </a>
  <b>b1</b>
  <awb>
    <awbpre>123</awbpre>
    <awbno></awbno>
  </awb>
  <spls>
    <spl />
  </spls>
</data>

代码

@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());
}

输出内容:

awbno
spl
spls
<?xml version="1.0" encoding="UTF-8"?>
<data><a> </a><b>b1</b><awb><awbpre>123</awbpre></awb></data>


版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。