使用JSoup删除HTML标记之间的文本

时间:2011-07-18 20:06:17

标签: html text jsoup extract

在某些HTML清理的情况下,我想保留标记之间的文本(这是Jsoup的默认行为),在某些情况下,我想删除文本以及HTML标记。有人可以说明如何使用Jsoup删除HTML标签之间的文本吗?

2 个答案:

答案 0 :(得分:11)

Cleaner将始终删除标记并保留文本。如果需要删除元素(即标记和文本/嵌套元素),可以预先解析HTML,使用remove()empty()删除元素,然后通过清理器运行结果。 / p>

例如:

String html = "Clean <div>Text dropped</div>";
Document doc = Jsoup.parse(html);
doc.select("div").remove();
// if not removed, the cleaner will drop the <div> but leave the inner text
String clean = Jsoup.clean(doc.body().html(), Whitelist.basic());

答案 1 :(得分:0)

1.     String html = "<!DOCTYPE html><html><head><title></title></head><body><p>hello there</p></body></html>";
2.      Document d = Jsoup.parse(html);
3.      System.out.println(d);
4.      System.out.println("************************************************");
5.      d.getElementsByTag("p").remove();
6.      System.out.println(d);

当您使用Elements时遇到麻烦,您可以在Document d对象上执行此操作。这将是准确的。