如何用jsoup删除html文档中的所有非标记?

时间:2012-04-18 05:47:16

标签: java-ee html-parsing jsoup

我可以看到很多类似的问题但不完全正确。我只想使用Jsoup从DOM中删除所有非html标签数据(纯文本)。结果应该只是没有纯文本的标记。

是内置jsoup还是我应该编写自己的regExp?解析整个DOM而不是RegExp并删除标记内的内容是否更好?

如果我不得不一个一个地解析很多文档/页面,哪个会更有效率?

[已解决] - 请参阅下面的代码(针对我的要求)

public void getNodesHtml(Elements children, Element parent) throws Exception {
    for(Element e : children) {
        String nodeName = e.nodeName();
        String id = e.id().isEmpty() ? "" : e.id();
        parent.append("<" + nodeName + " id=\"" + id + "\"> </" + nodeName + ">");

        Elements subchildren = e.children();
        getNodesHtml(subchildren, e);
    }
}

1 个答案:

答案 0 :(得分:0)

removeText(Element node){

    List<TextNode> textNodes = node.textNodes();

    for(TextNode tn : textNode){
        tn.remove();
    }

    Elements children = node.children();
    for(Element e : Elements)
        removeText(e);
}