如何删除除某些特定元素之外的所有HTML正文元素

时间:2017-02-10 13:26:35

标签: java jsoup

我有一个文件夹中的HTML文件列表。 我从文件夹中获取了所有HTML文件,并使用jsoup为每个html页面获取HTML文档元素。

现在我必须删除除每个HTML页面中的两个div元素之外的所有Html body元素。 我如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

在伪代码/评论中

Jsoup.parse(File in, String charsetName, String baseUri)会生成一个文档。

Document.body()应该为您提供html文件的正文。

然后你可以使用(在Jsoup包中)

public static String clean(String bodyHtml,
                           String baseUri,
                           Whitelist whitelist,
                           Document.OutputSettings outputSettings)

在通话中使用或使用任何搜索功能(getElementBy)并以任何方式输出结果。

您可以想象将列表放在流中或使用runnables并行处理以保持对进程的控制

答案 1 :(得分:0)

解决方案可能如下所示:

Elements bodyChildElements = doc.body().children();

for(Element e : bodyChildElements){
    if(!e.tagName().equals("div")){ 
        e.remove();
    }
    else if(!e.attr("id").equals("abc") && !e.attr("id").equals("xyz")){
        e.remove();
    }
}
System.out.println(doc.html());

这将获取正文下方的所有元素并将其从文档中删除,除非它们是具有特定id属性值的div。