XML笔记(2) - Jsoup篇

XML笔记(2)

  • 作者: Wyt

系列文章目录

XML笔记(1) - 入门篇
XML笔记(2) - Jsoup篇


7. Jsoup

7.1 jsoup的入门
* 概念: jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
  • 开发步骤
1. 导入jar包
2. 获取Document对象
3. 获取对应的标签Element对象
4. 获取数据

jsoup下载地址: https://jsoup.org/download

1. 在Project包下新建libs文件夹, 用来存放jar包
2. 在官网下载jsoup-版本号.jar, 粘贴进libs文件夹
3. 右键点击libs文件夹 -> 点击 Add as Library -> 		Level 选择 Module Library
  • 在src包下新建student.xml并进行配置
<?xml version="1.0" encoding="UTF-8" ?>

<students>
    <student number="001">
        <name>Tom</name>
        <age>18</age>
        <sex>male</sex>
    </student>

    <student number="002">
        <name>Lucy</name>
        <age>19</age>
        <sex>female</sex>
    </student>
</students>

  • 代码示例
package com.wyt.xml.jsoup;

/**
 * @author Wyt
 * @date 2020/10/30 22:51
 */

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

import java.io.File;
import java.io.IOException;

/**
 * Jsoup快速入门
 */
public class JsoupDemo1 {
    public static void main(String[] args) throws IOException {
        //1. 获取Document对象, 根据xml文档对象
        //1.1 获取student.xml的path
        String path = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
        //1.2 解析xml文档, 加载文档进内存, 获取dom树 --> Document
        Document document = Jsoup.parse(new File(path), "utf-8");
        //2 获取元素对象(数组)
        Elements elements = document.getElementsByTag("name");

        //2.1 打印元素的个数
        System.out.println(elements.size());
        //2.2 获取第一个name的Element的对象
        Element element = elements.get(0);
        //2.3 获取第一个name的Element对象
        String name = element.text();
        System.out.println(name);
    }
}

控制台输出:
	2
	Tom
7.2 对象的使用
1. Jsoup: 工具类, 可以解析html或xml文档, 返回Document
2. Document: 文档对象。 代表内存的dom树
3. Elements: 元素Element对象的集合, 可以当做 		ArrayList<Element>来使用
4. Element:元素对象
5. Node: 节点对象
	* 是Document和Element的父类
7.2.1 Jsoup对象功能
* Jsoup:
	(1)parse: 解析html或xml文档, 返回Document
	(2)parse(File in, String CharsetName): 解析xml或html文件的
	(3)parse(String html): 解析xml或html字符串
  • 代码演示
package com.wyt.xml.jsoup;

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

import java.io.File;
import java.io.IOException;
import java.net.URL;

/**
 * @author Wyt
 * @date 2020/10/31 13:46
 */
public class JsoupDemo2 {
    public static void main(String[] args) throws IOException {
        //1. 获取Document对象, 根据xml文档对象
        //1.1 获取student.xml的path
        String path = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath();

        //2.解析xml文档
        //2.1 解析xml文档, 加载文档进内存, 获取dom树 --> Document
//        Document document = Jsoup.parse(new File(path), "utf-8");
//        System.out.println(document);

        //2.2 parse(String html): 解析html或xml字符串
        String str = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
                "\n" +
                "<students>\n" +
                "    <student number=\"001\">\n" +
                "        <name>Tom</name>\n" +
                "        <age>18</age>\n" +
                "        <sex>male</sex>\n" +
                "    </student>\n" +
                "\n" +
                "    <student number=\"002\">\n" +
                "        <name>Lucy</name>\n" +
                "        <age>19</age>\n" +
                "        <sex>female</sex>\n" +
                "    </student>\n" +
                "</students>\n";
//        System.out.println(str);

        //2.3 parse(URL url, int timeoutMillis): 通过网络路径获取指定的html或xml的文档对象
        //url: 统一资源定位符, 表示互联网中的资源路径
        //timeoutMillis: 超时时间 (毫秒)
        URL url = new URL("https://www.open-open.com/jsoup/");
        Document document2 = Jsoup.parse(url, 100000);
        System.out.println(document2);
    }
}

7.2.2 Document对象功能
* Document: 获取Element对象
	(1)getElementById(String id): 根据id值获取唯一的element对象
	(2)getElementsByTag(String TagName): 根据标签名称获取元素对象集合
	(3)getElementsByAttribute(String key): 根据属性名称获取元素对象集合
	(4)getElementsByAttributeValue(String key, String value): 根据对应的属性名称和属性值获取元素对象集合
7.2.3 Element对象功能
* Element: 获取子元素对象
	1. 获取属性值
		String attr(String key): 根据属性名称获取属性值
	2. 获取文本内容
		String text(): 获取文本内容
		String html(): 获取标签体的所有内容(包括子标签的字符串内容)
7.3 选择器查询
  • selector: 选择器
* 使用的方法: Elements select(String cssQuery)
		语法:参考Selector类中定义的语法
7.4 XPath查询
* 简介: XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言
	*使用Jsoup的Xpath需要额外导入jar包。
	*查询w3cshool参考手册,使用xpath的语法完成查询
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Quantum_Wu

一起加油呀ヾ(◍°∇°◍)ノ゙

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值