使用 JSoup 删除 HTML 标签之间包含的文本

发布于 2024-11-25 01:32:18 字数 114 浏览 1 评论 0原文

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

In some cases of HTML cleaning, I would like to retain the text enclosed between the tags(which is the default behaviour of Jsoup) and in some cases, I would like to remove the text as well as the HTML tags. Can someone please throw some light on how I can remove the text enclosed between the HTML tags using Jsoup?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

荭秂 2024-12-02 01:32:18

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

例如:

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());

如果您使用的是 JSoup 1.14.1+,则使用 安全列表 而不是 白名单,如白名单已弃用,并将在 1.15.1 中删除。

String clean = Jsoup.clean(doc.body().html(), Safelist.basic());

The Cleaner will always drop tags and preserve text. If you need to drop elements (i.e. tags and text / nested elements), you can pre-parse the HTML, remove the elements using either remove() or empty(), then run the resulting through the cleaner.

For example:

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());

If you are using JSoup 1.14.1+ then use Safelist instead of Whitelist, as Whitelist has been deprecated and will be removed in 1.15.1.

String clean = Jsoup.clean(doc.body().html(), Safelist.basic());
花海 2024-12-02 01:32:18
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 对象执行此操作。这将准确地工作。

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);

while you getting with Elements you getting some trouble you can do this action on Document d object. that will work accurate.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文