
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); // 获取学生的子节点 ListchildNodes = elementStudent.getChildNodes(); for (Node node : childNodes) { System.out.println("节点类型: " + node.getClass().getName()); } }}
通过以上方法,可以轻松解析和操作 HTML 或 XML 文档,获取所需的元素信息并进行操作。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年03月21日 21时15分19秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
简单说说TCP三次握手、四次挥手机制
2019-03-06
.net Core 使用IHttpClientFactory请求
2019-03-06
多线程之旅(准备阶段)
2019-03-06
Python 之网络式编程
2019-03-06
MySql5.5安装步骤及MySql_Front视图配置
2019-03-06
springmvc Controller详解
2019-03-06
mybatis #{}和${}区别
2019-03-06
Java Objects工具类重点方法使用
2019-03-06
Java内存模型(JMM)
2019-03-06
AQS相关
2019-03-06
abp(net core)+easyui+efcore实现仓储管理系统——多语言(十)
2019-03-06
WCF学习之旅—第三个示例之一(二十七)
2019-03-06
java ThreadPoolExecutor初探
2019-03-06
Markdown进阶
2019-03-06
快速指数算法
2019-03-06
python去除字符串中的特殊字符(爬虫存储数据时会遇到不能作为文件名的字符串)
2019-03-06