使用案例
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.io.File;
import java.io.IOException;
public class JsoupDemo5 {
//select() 常用方法
public static void main(String[] args) {
//先獲取document文檔對象
String path=JsoupDemo5.class.getClassLoader().getResource("students.xml").getPath();
try {
Document document= Jsoup.parse(new File(path),"UTF-8");
//select()方法使用
Elements all= document.select("*");
System.out.println("顯示所有元素:"+all);
System.out.println("````````````````````````````````````````````````");
Elements element= document.select("age");
System.out.println("顯示包含age的元素:"+element);
System.out.println("````````````````````````````````````````````````");
Elements id= document.select("#2");
System.out.println("顯示id為2的元素:"+id);
System.out.println("````````````````````````````````````````````````");
Elements class1= document.select(".te");
System.out.println("顯示class為te的元素:"+class1);
System.out.println("````````````````````````````````````````````````");
Elements attr= document.select("[class]");
System.out.println("顯示屬性包含class的元素:"+attr);
System.out.println("````````````````````````````````````````````````");
//student索引小於2的元素
Elements lt= document.select("student:lt(1)");
System.out.println("顯示student標簽中索引小於2的元素:"+lt);
System.out.println("````````````````````````````````````````````````");
//student索引大於2的元素
Elements gt= document.select("student:gt(1)");
System.out.println("顯示student標簽中索引大於1的元素:"+gt);
System.out.println("````````````````````````````````````````````````");
//5
//student索引等於n的元素
Elements eq= document.select("student:eq(1)");
System.out.println("顯示student標簽中第二個:"+eq);
System.out.println("````````````````````````````````````````````````");
//6
//包含至少一個匹配選擇器元素的元素
Elements has= document.select("student:has(kc)");
System.out.println("顯示student包含至少一個kc:"+has);
System.out.println("````````````````````````````````````````````````");
//7
//與選擇器不匹配的元素
Elements not= document.select("student:not(student:has(kc))");
System.out.println("顯示student中不包含kc的元素:"+not);
System.out.println("````````````````````````````````````````````````");
//8
//包含指定文本的元素。搜索不區分大小寫。文本可以出現在找到的元素或它的任何后代元素中。
Elements contains= document.select("student:contains(java)");
System.out.println("查找包含文本java的student個元素。:"+contains);
System.out.println("````````````````````````````````````````````````");
//9
//屬性為id,值為“2”的元素
Elements attr1= document.select("[id=2]");
System.out.println("查找包含文本java的student個元素。:"+attr1);
System.out.println("````````````````````````````````````````````````");
//10
//匹配所有元素
Elements p= document.select("kc");
System.out.println("查找包含kc的元素:"+p);
} catch (IOException e) {
e.printStackTrace();
}
}
}
運行結果
顯示所有元素:<!--?xml version="1.0" encoding="UTF-8"?-->
<html>
<head></head>
<body>
<students>
<student id="1" class="red" major="java">
<name color="pink">
陳夢凡
</name>
<age>
18
</age>
<favorite>
reading
</favorite>
</student>
<student id="2">
<name>
javaboy
</name>
<age>
18
</age>
<favorite>
programming
</favorite>
</student>
<student id="3">
<name>
javagirl
</name>
<age>
17
</age>
<favorite>
sleep
</favorite>
</student>
<student>
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test">
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test1" class="te">
<name>
javagir43
</name>
<age>
11
</age>
<kc>
lllll
</kc>
<favorite>
oooo
</favorite>
</student>
</students>
</body>
</html>
<html>
<head></head>
<body>
<students>
<student id="1" class="red" major="java">
<name color="pink">
陳夢凡
</name>
<age>
18
</age>
<favorite>
reading
</favorite>
</student>
<student id="2">
<name>
javaboy
</name>
<age>
18
</age>
<favorite>
programming
</favorite>
</student>
<student id="3">
<name>
javagirl
</name>
<age>
17
</age>
<favorite>
sleep
</favorite>
</student>
<student>
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test">
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test1" class="te">
<name>
javagir43
</name>
<age>
11
</age>
<kc>
lllll
</kc>
<favorite>
oooo
</favorite>
</student>
</students>
</body>
</html>
<head></head>
<body>
<students>
<student id="1" class="red" major="java">
<name color="pink">
陳夢凡
</name>
<age>
18
</age>
<favorite>
reading
</favorite>
</student>
<student id="2">
<name>
javaboy
</name>
<age>
18
</age>
<favorite>
programming
</favorite>
</student>
<student id="3">
<name>
javagirl
</name>
<age>
17
</age>
<favorite>
sleep
</favorite>
</student>
<student>
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test">
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test1" class="te">
<name>
javagir43
</name>
<age>
11
</age>
<kc>
lllll
</kc>
<favorite>
oooo
</favorite>
</student>
</students>
</body>
<students>
<student id="1" class="red" major="java">
<name color="pink">
陳夢凡
</name>
<age>
18
</age>
<favorite>
reading
</favorite>
</student>
<student id="2">
<name>
javaboy
</name>
<age>
18
</age>
<favorite>
programming
</favorite>
</student>
<student id="3">
<name>
javagirl
</name>
<age>
17
</age>
<favorite>
sleep
</favorite>
</student>
<student>
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test">
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test1" class="te">
<name>
javagir43
</name>
<age>
11
</age>
<kc>
lllll
</kc>
<favorite>
oooo
</favorite>
</student>
</students>
<student id="1" class="red" major="java">
<name color="pink">
陳夢凡
</name>
<age>
18
</age>
<favorite>
reading
</favorite>
</student>
<name color="pink">
陳夢凡
</name>
<age>
18
</age>
<favorite>
reading
</favorite>
<student id="2">
<name>
javaboy
</name>
<age>
18
</age>
<favorite>
programming
</favorite>
</student>
<name>
javaboy
</name>
<age>
18
</age>
<favorite>
programming
</favorite>
<student id="3">
<name>
javagirl
</name>
<age>
17
</age>
<favorite>
sleep
</favorite>
</student>
<name>
javagirl
</name>
<age>
17
</age>
<favorite>
sleep
</favorite>
<student>
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
<student id="test">
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
<student id="test1" class="te">
<name>
javagir43
</name>
<age>
11
</age>
<kc>
lllll
</kc>
<favorite>
oooo
</favorite>
</student>
<name>
javagir43
</name>
<age>
11
</age>
<kc>
lllll
</kc>
<favorite>
oooo
</favorite>
````````````````````````````````````````````````
顯示包含age的元素:<age>
18
</age>
<age>
18
</age>
<age>
17
</age>
<age>
178
</age>
<age>
178
</age>
<age>
11
</age>
````````````````````````````````````````````````
顯示id為2的元素:<student id="2">
<name>
javaboy
</name>
<age>
18
</age>
<favorite>
programming
</favorite>
</student>
````````````````````````````````````````````````
顯示class為te的元素:<student id="test1" class="te">
<name>
javagir43
</name>
<age>
11
</age>
<kc>
lllll
</kc>
<favorite>
oooo
</favorite>
</student>
````````````````````````````````````````````````
顯示屬性包含class的元素:<student id="1" class="red" major="java">
<name color="pink">
陳夢凡
</name>
<age>
18
</age>
<favorite>
reading
</favorite>
</student>
<student id="test1" class="te">
<name>
javagir43
</name>
<age>
11
</age>
<kc>
lllll
</kc>
<favorite>
oooo
</favorite>
</student>
````````````````````````````````````````````````
顯示student標簽中索引小於2的元素:<student id="1" class="red" major="java">
<name color="pink">
陳夢凡
</name>
<age>
18
</age>
<favorite>
reading
</favorite>
</student>
````````````````````````````````````````````````
顯示student標簽中索引大於1的元素:<student id="3">
<name>
javagirl
</name>
<age>
17
</age>
<favorite>
sleep
</favorite>
</student>
<student>
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test">
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test1" class="te">
<name>
javagir43
</name>
<age>
11
</age>
<kc>
lllll
</kc>
<favorite>
oooo
</favorite>
</student>
````````````````````````````````````````````````
顯示student標簽中第二個:<student id="2">
<name>
javaboy
</name>
<age>
18
</age>
<favorite>
programming
</favorite>
</student>
````````````````````````````````````````````````
顯示student包含至少一個kc:<student id="test1" class="te">
<name>
javagir43
</name>
<age>
11
</age>
<kc>
lllll
</kc>
<favorite>
oooo
</favorite>
</student>
````````````````````````````````````````````````
顯示student中不包含kc的元素:<student id="1" class="red" major="java">
<name color="pink">
陳夢凡
</name>
<age>
18
</age>
<favorite>
reading
</favorite>
</student>
<student id="2">
<name>
javaboy
</name>
<age>
18
</age>
<favorite>
programming
</favorite>
</student>
<student id="3">
<name>
javagirl
</name>
<age>
17
</age>
<favorite>
sleep
</favorite>
</student>
<student>
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test">
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
````````````````````````````````````````````````
查找包含文本java的student個元素。:<student id="2">
<name>
javaboy
</name>
<age>
18
</age>
<favorite>
programming
</favorite>
</student>
<student id="3">
<name>
javagirl
</name>
<age>
17
</age>
<favorite>
sleep
</favorite>
</student>
<student>
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test">
<name>
javagirl2
</name>
<age>
178
</age>
<favorite>
sleep2
</favorite>
</student>
<student id="test1" class="te">
<name>
javagir43
</name>
<age>
11
</age>
<kc>
lllll
</kc>
<favorite>
oooo
</favorite>
</student>
````````````````````````````````````````````````
查找包含文本java的student個元素。:<student id="2">
<name>
javaboy
</name>
<age>
18
</age>
<favorite>
programming
</favorite>
</student>
````````````````````````````````````````````````
查找包含kc的元素:<kc>
lllll
</kc>