Jsoup 对象的使用
发布日期:2021-05-07 19:40:53 浏览次数:27 分类:精选文章

本文共 3424 字,大约阅读时间需要 11 分钟。

Jsoup 解析工具使用说明

1. parse 对象

Jsoup 提供了 parse 方法用于解析 HTML 或 XML 文档,返回 Document 对象。该方法支持多种输入格式:

  • parse(File in, String charsetName):解析指定文件的 XML 或 HTML 文档。
  • parse(String html):解析提供的 HTML 或 XML 字符串。
  • parse(URL url, int timeoutMillis):通过网络路径获取指定文档。

以下是使用 parse 方法的示例:

public class JsoupDemo {
public static void main(String[] args) throws Exception {
// 获取学生信息 XML 文件路径
String path = JsoupDemo.class.getClassLoader().getResource("student.xml").getPath();
// 解析 XML 文档
Document document = Jsoup.parse(new File(path), "utf-8");
// 打印解析结果
System.out.println(document);
}
}

2. Document 对象

解析完成后,会返回一个 Document 对象,该对象表示内存中的 DOM 树。Document 对象提供了多种方法来获取元素:

  • getElementById(String id):根据 id 属性值获取唯一的 Element 对象。
  • getElementsByTag(String tagName):根据标签名称获取元素集合。
  • getElementsByAttribute(String key):根据属性名称获取元素集合。
  • getElementsByAttributeValue(String key, String value):根据属性名和属性值获取元素集合。

以下是使用 Document 对象的示例:

public class JsoupDemo {
public static void main(String[] args) throws Exception {
String path = JsoupDemo.class.getClassLoader().getResource("student.xml").getPath();
Document document = Jsoup.parse(new File(path), "utf-8");
// 获取第一个学生元素
Element elementStudent = document.getElementsByTag("student").get(0);
// 获取学生的 id 属性
String studentId = elementStudent.attr("id");
// 获取学生的姓名
Elements nameElements = elementStudent.getElementsByTag("name");
String name = nameElements.text();
System.out.println("学生 ID: " + studentId + "\n学生姓名: " + name);
}
}

3. Element 对象

Element 对象代表的是 DOM 中的一个具体元素。它提供了多种方法来获取子元素及属性信息:

  • 获取子元素

    • getElementById(String id):返回具有指定 id 的唯一元素。
    • getElementsByTag(String tagName):返回所有具有指定标签的元素集合。
    • getElementsByAttribute(String key):返回所有具有指定属性的元素集合。
    • getElementsByAttributeValue(String key, String value):返回所有具有指定属性名和属性值的元素集合。
  • 获取属性值

    • String attr(String key):根据属性名获取对应的属性值。
  • 获取内容

    • String text():获取元素内嵌的文本内容。
    • String html():获取元素内嵌的 HTML 标签内容,包括标签本身的字符串内容。

以下是使用 Element 对象的示例:

public class JsoupDemo {
public static void main(String[] args) throws Exception {
String path = JsoupDemo.class.getClassLoader().getResource("student.xml").getPath();
Document document = Jsoup.parse(new File(path), "utf-8");
// 获取第一个学生元素
Element elementStudent = document.getElementsByTag("student").get(0);
// 获取学生的 id 属性
String studentId = elementStudent.attr("id");
// 获取学生的姓名
Elements nameElements = elementStudent.getElementsByTag("name");
String name = nameElements.text();
System.out.println("学生 ID: " + studentId + "\n学生姓名: " + name);
}
}

4. Node 对象

Node 是 Document 和 Element 的父类类,它表示 DOM 中的节点。Node 对象提供了获取子节点的方法,包括:

  • getChildNodes():返回 Element 对象的所有子节点。
  • getChildren():返回 Element 对象的所有直接子节点。

以下是使用 Node 对象的示例:

public class JsoupDemo {
public static void main(String[] args) throws Exception {
String path = JsoupDemo.class.getClassLoader().getResource("student.xml").getPath();
Document document = Jsoup.parse(new File(path), "utf-8");
// 获取第一个学生元素
Element elementStudent = document.getElementsByTag("student").get(0);
// 获取学生的子节点
List
childNodes = elementStudent.getChildNodes();
for (Node node : childNodes) {
System.out.println("节点类型: " + node.getClass().getName());
}
}
}

通过以上方法,可以轻松解析和操作 HTML 或 XML 文档,获取所需的元素信息并进行操作。

上一篇:Jsoup 快捷查询方式
下一篇:Jsoup 快速入门

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年03月21日 21时15分19秒