Jsoup

内容:Jsoup的四个对象

  • Jsoup:工具类,可以解析html文档或xml文档,返回Document
  • Document:

1、Jsoup的快速入门

步骤

  1. 导入jar包
  2. 获取Documentd对象
  3. 获取对应的标签Element对象
  4. 获取数据
public class JsoupDemo1 {
    public static void main(String[] args) throws IOException {
        //根据xml获取Document对象
        //获取student.xml的path
        String path = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
        //解析xml文档,加载文档进内存,获取dom树--》Document
        Document document = Jsoup.parse(new File(path), "utf-8");
        //获取元素对象Element
        Elements element = document.getElementsByTag("name");
        //获取第一个name的Element对象
        Element name = element.get(0);
        //获取数据
        String text = name.text();
        System.out.println(text);
    }
}

2、Jsoup

工具类,可以解析html或xml文档,返回Document
    parse:解析html或xml文档,返回Document,3种方式,解析文档、字符串或一个URL

  1. parse​(File in, String charsetName):解析xml或html文件的
    String path = JsoupDemo2.class.getClassLoader().getResource("student.xml").getPath();
        //解析xml文档,加载文档进内存,获取dom树--》Document
    Document document = Jsoup.parse(new File(path), "utf-8");
  1. parse​(String html):解析xml或html字符串
 Document document = Jsoup.parse(str);
  1. parse​(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象,timeoutMillis,超过该时间就不读取了
 URL url=new URL("https://cwl-java.blog.csdn.net/article/details/104245104?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control");
Document parse = Jsoup.parse(url, 1000000);

3、Document对象

按照标签获取、按照属性名获取、按照属性名+属性值获取、按照ID获取

-	document.getElementsByTag("student"):获取标签值为student的元素
-	document.getElementsByAttribute("id"):获取属性名为id的元素
-	document.getElementsByAttributeValue("number", "heima_0001"):获取属性number值为heima_0001的元素
-	document.getElementById("itcast"):获取id值为itcast的元素

代码:

public class JsoupDemo3 {
    public static void main(String[] args) throws IOException {
        //根据xml获取Document对象
        //获取student.xml的path
        String path = JsoupDemo3.class.getClassLoader().getResource("student.xml").getPath();
        Document document = Jsoup.parse(new File(path), "utf-8");
        //获取所有student对象
        Elements student = document.getElementsByTag("student");
        System.out.println(student);

        //获取属性名为id的元素对象们
        Elements element = document.getElementsByAttribute("id");
        System.out.println(element);

        //获取number属性值为heima_0001的元素对象
        Elements element1 = document.getElementsByAttributeValue("number", "heima_0001");
        System.out.println(element1);

        Element elementById = document.getElementById("itcast");
        System.out.println(elementById);
    }
}

4、Elements对象

元素Element对象的集合。可以当做 ArrayList来使用

5、Element对象

1. 获取子元素对象
				* getElementById​(String id):根据id属性值获取唯一的element对象
				* getElementsByTag​(String tagName):根据标签名称获取元素对象集合
				* getElementsByAttribute​(String key):根据属性名称获取元素对象集合
				* getElementsByAttributeValue​(String key, String value):根据对应的属性名和属性值获取元素对象集合

2. 获取属性值
				* String attr(String key):根据属性名称获取属性值
3. 获取文本内容
				* String text():获取文本内容,只获取本文内容,不获取标签
				* String html():获取标签体的所有内容(包括子标签的字符串内容)**

代码

public class JsoupDemo4 {
    public static void main(String[] args) throws IOException {
        //根据xml获取Document对象
        //获取student.xml的path
        String path = JsoupDemo4.class.getClassLoader().getResource("student.xml").getPath();
        Document document = Jsoup.parse(new File(path), "utf-8");
        //获取所有student对象
        Element student = document.getElementsByTag("student").get(0);
        Elements name = student.getElementsByTag("name");
        System.out.println(name);
        String name1 = student.attr("number");
        System.out.println(name1);
        System.out.println("-------------------");
        String text = student.getElementsByTag("name").text();
        System.out.println(text);
        String html = student.html();
        System.out.println(html);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值