📜  jsoup-提取属性(1)

📅  最后修改于: 2023-12-03 15:32:25.613000             🧑  作者: Mango

Jsoup - 提取属性

Jsoup是一个用于解析HTML和XML文档的Java库。它支持从文档中选择HTML元素,获取元素的属性和文本内容。本文将介绍如何使用Jsoup来提取HTML元素的属性。

导入Jsoup库

首先,我们需要导入Jsoup库。我们可以通过Maven或Gradle来实现。以下是Maven方式:

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.14.1</version>
</dependency>
提取元素属性

我们将使用以下HTML代码作为例子:

<html>
<body>
    <div id="example" class="container">
        <a href="https://www.example.com">Link</a>
    </div>
</body>
</html>

我们可以使用Jsoup库将HTML代码加载到内存中,并选择一个元素。例如,我们选择div元素:

Document doc = Jsoup.parse(html);
Element div = doc.select("div").first();

现在我们可以使用element.attr()方法来提取元素的属性。例如,我们可以提取div元素的id和class:

String id = div.attr("id");
String className = div.attr("class");

我们也可以使用element.text()方法来提取元素的文本内容。例如,我们可以提取a元素的文本内容和href属性:

Element link = doc.select("a").first();
String linkText = link.text();
String linkHref = link.attr("href");
完整代码

以下是完整的Java代码:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class Main {
    public static void main(String[] args) {
        String html = "<html><body><div id=\"example\" class=\"container\"><a href=\"https://www.example.com\">Link</a></div></body></html>";
        Document doc = Jsoup.parse(html);

        Element div = doc.select("div").first();
        String id = div.attr("id");
        String className = div.attr("class");

        Element link = doc.select("a").first();
        String linkText = link.text();
        String linkHref = link.attr("href");

        System.out.println("div id: " + id);
        System.out.println("div class: " + className);
        System.out.println("a href: " + linkHref);
        System.out.println("a text: " + linkText);
    }
}

输出:

div id: example
div class: container
a href: https://www.example.com
a text: Link
总结

使用Jsoup库,我们可以方便地提取HTML元素的属性和文本内容。我们可以使用element.attr()方法来提取属性,使用element.text()方法来提取文本。这是一个非常有用的功能,有助于我们更加灵活地处理HTML和XML文档。