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

原始xml内容:

2    

3   b1

4   

5     123

6     

7   

8   

9     

10   11 

可用下面的代码去掉 、这二个空节点 (注 中间有一个空格,不算空节点)

1     @Test

2     public void testDeleteEmptyNode() throws DocumentException {

3         String xmlOrigin = " b1123";

4         SAXReader saxReader = new SAXReader();

5         Document document = saxReader.read(new ByteArrayInputStream(xmlOrigin

6                 .getBytes()));

7

8         while (true) {

9             @SuppressWarnings("unchecked")

10             List 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

b1123

即:

2    

3   b1

4   

5     123

6   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
生成XPath: 如果你有一个XML节点,可以使用getNodePath()方法来获取该节点XPath。 例如,假设你有一个org.w3c.dom.Node对象,通过调用getNodePath()方法,你可以获取该节点XPath: Node node = ...; String xpath = ((org.apache.xpath.Node) node).getNodePath(); 获取XPath: 如果你已经知道了要获取的节点XPath,可以使用javax.xml.xpathXPath API来获取该节点。 例如,假设你有以下XML文档: <?xml version="1.0" encoding="UTF-8"?> <root> <element1>value1</element1> <element2> <subelement1>value2</subelement1> <subelement2>value3</subelement2> </element2> </root> 要获取根节点XPath,你可以使用如下代码: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new File("path/to/xml/file.xml")); XPathFactory xPathfactory = XPathFactory.newInstance(); XPath xpath = xPathfactory.newXPath(); String rootNodeXPath = "/"; Node rootNode = (Node) xpath.evaluate(rootNodeXPath, doc, XPathConstants.NODE); 要获取子节点element1的XPath,你可以使用如下代码: String element1XPath = "/root/element1"; Node element1 = (Node) xpath.evaluate(element1XPath, doc, XPathConstants.NODE); 要获取子节点element2下的子节点subelement1的XPath,你可以使用如下代码: String subelement1XPath = "/root/element2/subelement1"; Node subelement1 = (Node) xpath.evaluate(subelement1XPath, doc, XPathConstants.NODE);

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值