【问题标题】:Removing text enclosed between HTML tags using JSoup使用 JSoup 删除 HTML 标记之间的文本
【发布时间】:2011-10-08 00:01:34
【问题描述】:

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

【问题讨论】:

  • 6 个问题,没有一个被接受。您不感谢这里给您的帮助吗?

标签: html text jsoup extract


【解决方案1】:
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 对象上执行此操作。这将准确无误。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-20
      • 1970-01-01
      • 2015-08-09
      • 2022-06-23
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多