Jsoup Selector选择器用法
1 package com.kangcong.zy; 2 3 import org.jsoup.Jsoup; 4 import org.jsoup.nodes.Document; 5 import org.jsoup.select.Elements; 6 7 import java.io.File; 8 import java.io.IOException; 9 10 11 12 13 public class Jsoup_Selector { 14 public static void main(String[] args) { 15 String path = Jsoup_Selector.class.getClassLoader().getResource("student.xml").getPath(); 16 try { 17 Document document = Jsoup.parse(new File(path), "UTF-8"); 18 System.out.println("1.---------------------------------"); 19 //1.eq(0)去找student的第一个索引 20 Elements elements1 = document.select("student:eq(0)"); 21 System.out.println(elements1); 22 System.out.println("2.---------------------------------"); 23 24 //2.lt(1)去找student的索引小于1 25 Elements elements2 = document.select("student:lt(1)"); 26 System.out.println(elements2); 27 System.out.println("3.---------------------------------"); 28 29 //3.gt(1)去找student的索引大于1 30 Elements elements3 = document.select("student:gt(1)"); 31 System.out.println(elements3); 32 System.out.println("4.---------------------------------"); 33 34 //4.has(p)去找student包含p标签的 35 Elements elements4 = document.select("student:has(p)"); 36 System.out.println(elements4); 37 System.out.println("5.---------------------------------"); 38 39 //5.not()去找student不包含p标签的 40 Elements elements5= document.select("student:not(:has(p))"); 41 System.out.println(elements5); 42 System.out.println("6.---------------------------------"); 43 44 //6.contains()是否包含某个元素 45 Elements elements6= document.select("p:contains(ff)"); 46 System.out.println(elements6); 47 System.out.println("7.---------------------------------"); 48 49 //7.获取class=ge的student 50 Elements elements7= document.select("student.ge"); 51 System.out.println(elements7); 52 System.out.println("8.---------------------------------"); 53 54 //8.获取class=ge后面的元素name 55 Elements elements8= document.select(".ge>name"); 56 System.out.println(elements8); 57 System.out.println("9.---------------------------------"); 58 59 //9.属性为color,值为ff的元素 60 Elements elements9= document.select("[color=ff]"); 61 System.out.println(elements9); 62 System.out.println("10.---------------------------------"); 63 64 //10.所有匹配元素p,student 65 Elements elements10= document.select("p,student"); 66 System.out.println(elements10); 67 68 } catch (IOException e) { 69 e.printStackTrace(); 70 } 71 72 } 73 }
Document:文档对象,代表内存中的dom树:
getElementById(String id):根据id属性值获取唯一的element对象
getElementsByTag(String tagName):根据标签名获取元素对象集合
getElementsByAttribute(String key):根据属性名称获取元素对象集合
getElementsByAttributeValue(String key,String value):根据对应的属性名和属性值获取元素对象的集合
Elements :元素Element对象的集合.可以当做ArrayList<Element>来使用:
document具有如下几种方法,同样适用于element,原因是document,element有一个共同的父类:node
getElementById(String id):根据id属性值获取唯一的element对象`
getElementsByTag(String tagName):根据标签名获取元素对象集合`
getElementsByAttribute(String key):根据属性名称获取元素对象集合`
getElementsByAttributeValue(String key,String value):根据对应的属性名和属性值获取元素对象的集合`
获取属性值
String attr (String key):根据属性名获取属性值
获取文本内容
String text():获取文本内容`
String html():获取标签体的所有内容(包括子标签的字符串内容)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步