📜  jsoup 移除元素 - Java (1)

📅  最后修改于: 2023-12-03 14:43:35.125000             🧑  作者: Mango

使用 Jsoup 移除元素

Jsoup 是一款 Java 的 HTML 解析器,可以帮助你从 HTML 页面中提取数据、操作 DOM 等。本文将介绍如何使用 Jsoup 移除 HTML 中的元素。

前提条件

在开始本文之前,需要先掌握以下技能:

  • Java 语言基础知识
  • HTML DOM 的基础知识
移除指定的元素

示例 HTML:

<html>
  <head>
    <title>Example</title>
  </head>
  <body>
    <div class="container">
      <p>这是一个段落。</p>
      <a href="https://www.example.com">这是一个链接</a>
      <img src="https://www.example.com/image.png" />
    </div>
  </body>
</html>

如果我们想要移除 HTML 中的所有链接,可以使用如下代码:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class Main {
    public static void main(String[] args) {
        String html = "<html>...</html>";
        Document doc = Jsoup.parse(html);
        Elements links = doc.select("a");
        links.remove();
        System.out.println(doc.toString());
    }
}

输出结果:

<html>
  <head>
    <title>Example</title>
  </head>
  <body>
    <div class="container">
      <p>这是一个段落。</p>
      <img src="https://www.example.com/image.png" />
    </div>
  </body>
</html>

这里我们使用了 Jsoup 的 select 方法来选择所有的 a 元素,然后使用 remove 方法将其移除。最后输出修改后的 HTML。

移除指定样式的元素

如果我们想要移除所有 classcontainer 的元素,可以使用如下代码:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class Main {
    public static void main(String[] args) {
        String html = "<html>...</html>";
        Document doc = Jsoup.parse(html);
        Elements containers = doc.select(".container");
        containers.remove();
        System.out.println(doc.toString());
    }
}

输出结果:

<html>
  <head>
    <title>Example</title>
  </head>
  <body>
    
      <p>这是一个段落。</p>
      <a href="https://www.example.com">这是一个链接</a>
      <img src="https://www.example.com/image.png" />

  </body>
</html>

这里我们使用了 .container 选择器来选择所有 classcontainer 的元素,然后使用 remove 方法将其移除。

移除指定属性的元素

如果我们想要移除所有带有 href 属性的元素,可以使用如下代码:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class Main {
    public static void main(String[] args) {
        String html = "<html>...</html>";
        Document doc = Jsoup.parse(html);
        Elements elementsWithHref = doc.select("[href]");
        elementsWithHref.remove();
        System.out.println(doc.toString());
    }
}

输出结果:

<html>
  <head>
    <title>Example</title>
  </head>
  <body>
    <div class="container">
      <p>这是一个段落。</p>
      <img src="https://www.example.com/image.png" />
    </div>
  </body>
</html>

这里我们使用了带有属性选择器 [attribute] 来选择所有带有 href 属性的元素,然后使用 remove 方法将其移除。

结语

本文介绍了如何使用 Jsoup 移除 HTML 中的元素。Jsoup 还有更多功能,可以帮助你处理 HTML、XML 等文本格式。如果你需要从文本中提取数据、操作 DOM,Jsoup 是一个不错的选择。