Java 怎么从DOM树中删除所有空白文本节点

2019年7月29日19:18:49Java 怎么从DOM树中删除所有空白文本节点已关闭评论 557 684字阅读2分16秒

1.简介

Java 怎么从DOM树中删除所有空白文本节点?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */



import java.util.HashSet;

import java.util.Set;

import org.w3c.dom.Document;

import org.w3c.dom.Node;
import org.w3c.dom.traversal.DocumentTraversal;
import org.w3c.dom.traversal.NodeFilter;
import org.w3c.dom.traversal.NodeIterator;

public class Main {
    
    public static void removeWhitespace(Document document) {
        Set<Node> toRemove = new HashSet<Node>();
        DocumentTraversal t = (DocumentTraversal) document;
        NodeIterator it = t.createNodeIterator(document,
                NodeFilter.SHOW_TEXT, null, true);

        for (Node n = it.nextNode(); n != null; n = it.nextNode()) {
            if (n.getNodeValue().trim().isEmpty()) {
                toRemove.add(n);
            }
        }

        for (Node n : toRemove) {
            n.getParentNode().removeChild(n);
        }
    }
}

 
编程十万个怎么办