(使用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的父類