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); } }
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)); } }