Jsoup的使用
入门案例
public class JsoupDemo {
public static void main(String[] args) {
//获取Document对象
//1.获取文件的路径,使用类的加载器
String path = JsoupDemo.class.getClassLoader().getResource("Student.xml").getPath();
//2.解析xml文档 获取到Document的树
Document document = null;
try {
document = Jsoup.parse(new File(path),"UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
//获取元素 Element组成的一个集合Elements
Elements elements = document.getElementsByTag("name");
//取出元素
Element element = elements.get(0);
//取出文本数据
String text = element.text();
System.out.println(text);
}
}
Jsoup对象(工具类的使用)
- Jsoup工具类,可以解析xml,html文档,返回Document
1.parse()
方法,是用来解析xml,html文件的
parse(File in,String charsetName)
:解析xml或者html文件的,需要一个file对象
parse(String html)
:解析html或者xml文件的字符串,也就是html或xml的内容
parse(URl url,int timeoutMiilles)
:根据网络中的一个URL获取资源路径,timeoutMiilles
是一个超时时间
public class JsoupDemo {
public static void main(String[] args) {
URL url = null;
try {
url = new URL("https://www.oschina.net/p/jsoup?hmsr=aladdin1e1");
} catch (MalformedURLException e) {
e.printStackTrace();
}
Document parse = null;
try {
parse = Jsoup.parse(url, 10000);
} catch (IOException e) {
e.printStackTrace();
}
//输出
System.out.println(parse);
}
}
2.Document:文档对象,代表内存中的dom树
getElementsByTag(String tagName)
:根据标签名称获取元素的集合
getElementsByAttribute(String key)
:根据属性的名称来获取元素的集合
getElementsByAttributeValue(String key,String value)
:根据对应的属性名和属性值来获取元素对象集合
getElementById(String id)
:根据id来获取指定的集合元素对象
3.Elements:元素Element的集合,可以当做ArrayList
4.Element:元素对象
1.获取子元素对象
getElementsByTag(String tagName)
:根据标签名称获取元素的集合
getElementsByAttribute(String key)
:根据属性的名称来获取元素的集合
getElementsByAttributeValue(String key,String value)
:根据对应的属性名和属性值来获取元素对象集合
getElementById(String id)
:根据id来获取指定的集合元素对象
2.获取属性值
String atter(String key)
:根据属性名称获取属性值
3.获取文本内容
String text()
:获取纯文本内容
String html()
:获取标签体的所以内容(包括子标签)
5.Node:节点对象 是Document和Elements的父类
快速的查询方式
1.根据选择器查询selector
Elements.selector(String cssQuery)
参考Selector的语法,也就是html中的选择器
2.XPath查询,w3c提供的一种快速查询的方式 XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航
使用XPath需要导入一个jar包 jsoupXpath [https://www.w3school.com.cn/xpath/xpath_intro.asp][xpath的语句规则如下 ]
public class JsoupDemo {
public static void main(String[] args) {
//获取Document对象
//1.获取文件的路径,使用类的加载器
String path = JsoupDemo.class.getClassLoader().getResource("Student.xml").getPath();
//2.解析xml文档 获取到Document的树
Document document = null;
try {
document = Jsoup.parse(new File(path),"UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
//获取元素 Element组成的一个集合Elements
Elements elements = document.getElementsByTag("name");
//取出元素
Element element = elements.get(0);
//取出文本数据
String text = element.text();
System.out.println(text);
//根据Document对象创建jxDocument
JXDocument jx = new JXDocument(elements);
//结合xpath的语法进行查询
List<JXNode> jxNodes = jx.selN("//user");
System.out.println(jxNodes.get(0));
}
}