jsoup中對象的使用(Jsoup、Document、Elements、Element 、Node )

(使用Jsoup時一定要先前導如jar包)

一、 jsoup中幾種常用的對象

  • 1、Jsoup對象:可以解析html或xml文檔

  • 2、 Document :文檔對象。代表內存中的dom樹

  • 3、Elements :元素Element對象的集合。(可以當做Arraylist來使用)

  • 4、 Element :元素對象

  • 5、 Node:節點對象

二、 jsoup中jsoup對象的使用

Jsoup:工具類,可以解析html或xml文檔, 返回Document(Jsoup解析常用的方法)

parse :解析html或xml文檔,返回Document

  • 1、parse(File in, string charsetName) : 解析xml或html文件的。

  • 2、parse(String html) : 解析xml或html字符串
  • 3、 parse(URL url, int timeoutMillis) :通過網絡路徑獲取指定的html或xml的文檔對象
public class JsoupTest {
    public static void main(String[] args) throws IOException {
        //1. 獲取Document對象,根據xml文檔獲取
        //2. 獲取user.xml的path
        String path = Objects.requireNonNull(JsoupTest.class.getClassLoader().getResource("User.xml")).getPath();
        //3. 解析xml文檔,加載文檔進內存,獲取dom樹----->Document
        
        //(1)parse(File in, string charsetName)
//        Document document = Jsoup.parse(new File(path),"UTF-8");

		//(2)parse(URL url, int timeoutMillis) 
//        URL url = new URL("https://blog.csdn.net/lsy_666");
//        Document document = Jsoup.parse(url, 100000);

		//(3)parse(String html) 
        String text = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
                "<users>\n" +
                "    <user number=\"user01\">\n" +
                "        <name>lsy</name>\n" +
                "        <age>20</age>\n" +
                "        <sex>w</sex>\n" +
                "        <phone>123654987</phone>\n" +
                "    </user>\n" +
                "    <user number=\"user02\">\n" +
                "        <name>tao</name>\n" +
                "        <age>20</age>\n" +
                "        <sex>m</sex>\n" +
                "        <phone>125469873</phone>\n" +
                "    </user>\n" +
                "</users>";
        Document document = Jsoup.parse(text);
        System.out.println(document);

    }

}

<?xml version="1.0" encoding="UTF-8" ?>
<users>
    <user number="user01">
        <name>lsy</name>
        <age>20</age>
        <sex>w</sex>
        <phone>123654987</phone>
    </user>
    <user number="user02">
        <name>tao</name>
        <age>20</age>
        <sex>m</sex>
        <phone>125469873</phone>
    </user>
</users>

三、 jsoup中Document 對象的使用

Document :文檔對象,代表內存中的dom樹

作用獲取Element對象
  • getElementById(String id) :根據id屬性值獲取唯一的element對象
  • getElementsByTag(String tagName) :根據標籤名稱獲取元素對象集合
  • getElementsByAttribute(String key) :根據屬性名稱獲取元素對象集合
  • getElementsByAttributevalue(string key, string value) :根據對應的屬性名和屬性值獲取元素對象集合
示範案例:
public class JsoupDocument {
    public static void main(String[] args) throws IOException {
        //1. 獲取Document對象,根據xml文檔獲取
        //2. 獲取user.xml的path
        String path = JsoupDocument.class.getClassLoader().getResource("User.xml").getPath();
        //3. 解析xml文檔,加載文檔進內存,獲取dom樹----->Document
        Document document = Jsoup.parse(new File(path),"UTF-8");

        //獲取所有user對象
        Elements elements = document.getElementsByTag("user");
        System.out.println(elements);
        System.out.println("-----------------");
        //獲取屬性名爲id的元素對象們
        Elements elements1 = document.getElementsByAttribute("id");
        System.out.println(elements1);
        System.out.println("-----------------");
        //獲取number值爲user01的元素對象
        Elements elements2 = document.getElementsByAttributeValue("number", "user01");
        System.out.println(elements2);
        System.out.println("-----------------");
        //獲取id值爲1的元素對象
        Element element = document.getElementById("1");
        System.out.println(element);
    }

}

四、 jsoup中Elements 對象的使用

元素Element對象的集合。可以當做ArrayList來使用

五、 jsoup中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(): 獲取標籤體的所有內容(包括字標籤的字符串內容)

六、 jsoup中Node對象的使用

是Document和Element的父類

PS:由於使用的方法都差不多,所以有些例子就沒有列舉出來。大家可以解壓一下分享的文檔。查看Jsoup的API進行更深入的學習。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章