Jsoup select()常用方法

使用案例

 

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>

 
原文地址:https://www.cnblogs.com/CjtBlog/p/13531178.html