Jsoup使用选择器语法来查找元素
生活随笔
收集整理的這篇文章主要介紹了
Jsoup使用选择器语法来查找元素
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果你想使用類似于CSS或jQuery的語法來查找和操作元素,我們可以使用Element.select(String selector) 和 Elements.select(String selector) 方法實現:
File input = new File("html path"); Document document = Jsoup.parser(input, "UTF-8", "http://www.baidu.com");Elements links = docment.select("a[href]"); //帶有href屬性的a元素 Elements pngs = document.select("img[src$=.png]"); 擴展名為.png的圖片Element masthead = document.select("div.masthead").first; //獲取class=masthead的div標簽的第一個div Elements resultLinks = document.select("h3.r > a"); // 獲取class=r的h3元素后面的a元素解說:
jsoup elements對象支持類似CSS或者JQuery的選擇器,來實現非常強大及靈活的查找功能。這個select方法在Document、Elements和Element中都可以使用,且是上下文相關的,因此可以實現指定元素的過濾,或者鏈式選擇訪問。
Select方法將返回一個Elements集合,并提供一組方法來抽取和處理結果。
Selector選擇器概述:
tagname:通過標簽查找元素,比如:a ns|tag:通過標簽在命名空間查找元素,比如:可以用fb|name語法來查找<fb:name>元素 #id:通過ID查找元素,比如:#logo .class:通過class名稱查找元素,比如:.masthead [attrbute]:利用屬性查找元素,比如:[href] [^attr]:利用屬性名稱前綴來查找元素,比如:可以用[^data-]來查找帶有HTML5 Dataset屬性的元素 [attr=value]:利用屬性值來查找元素,比如:[width=500] [attr^=value]、[attr$=value]、[attr*=value]:利用匹配屬性值開頭、結尾或包含屬性值來查找元素,比如:[href*=/path/detail?date=20180419] [attr~=regex]:利用屬性值匹配正則表達式來查找元素,比如: *:這個符號將匹配所有Selector選擇組合使用
el#id:元素+ID,比如:div#logo el.class:元素+class,比如:div.masthead el[attr]:元素+class, 比如:a[href] 任意組合,比如:a[href].highlight ancestor child:查找某個元素下的子元素,比如:可以用.body p查找在body元素下的所有p元素 parent > child:查找某個父元素下的直接子元素,比如:可以用div.content >p查找p元素,也可以用body>*查找body標簽下所有直接子元素 siblingA + siblingB:查找在A元素之前第一個同級元素B,比如:div.head + div slblingA ~ siblingX:查找A元素之前的同級X元素,比如:h1~p el,el,el:多個選擇器組合,查找匹配任意選擇器的唯一元素,例如:div.masthead,div.logo偽選擇器Selector
:lt(n):查找哪些元素的同級索引值小于n,比如:td:lt(3)表示小于三列的元素值 :gt(n):查找哪些元素的同級索引值大于n,比如:div p:gt(2)表示哪些div中有包含2個以上的p元素 :eq(n):查找哪些元素的同級索引值與n相等,比如: from input:eq(1)表示包含一個inout標簽的Form元素 :has(selector):查找匹配選擇器包含元素的元素,比如:div:has(p)表示哪些div包含p元素 :not(selector):查找與選擇器不匹配的元素,比如:div:not(.logo)表示不包含class=logo元素的所有div列表 :contains(text):查找包含給定文本的元素,搜索不區分大小寫,比如 p:contains(jsoup) :containsOwn(text):查找直接包含給定文本的元素 :matches(regex):查找哪些元素的文本匹配指定的正則表達式,比如:div:matches((?i)login) :matchesOwn(regex):查找自身包含文本匹配指定正則表達式的元素總結
以上是生活随笔為你收集整理的Jsoup使用选择器语法来查找元素的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Stream操作Collection集合
- 下一篇: Java字符串性能优化