(使用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.youkuaiyun.com/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的父类