你想使用相似於CSS或jQuery的語法來查找和操做元素。css
能夠使用Element.select(String selector)
和 Elements.select(String selector)
方法實現:html
File input = new File("/tmp/input.html"); Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/"); Elements links = doc.select("a[href]"); //帶有href屬性的a元素 Elements pngs = doc.select("img[src$=.png]"); //擴展名爲.png的圖片 Element masthead = doc.select("div.masthead").first(); //class等於masthead的div標籤 Elements resultLinks = doc.select("h3.r > a"); //在h3元素以後的a元素
jsoup elements對象支持相似於CSS (或jquery)的選擇器語法,來實現很是強大和靈活的查找功能。.java
這個select
方法在Document
, Element
,或Elements
對象中均可以使用。且是上下文相關的,所以可實現指定元素的過濾,或者鏈式選擇訪問。node
Select方法將返回一個Elements
集合,並提供一組方法來抽取和處理結果。jquery
tagname
: 經過標籤查找元素,好比:a
ns|tag
: 經過標籤在命名空間查找元素,好比:能夠用 fb|name
語法來查找 <fb:name>
元素#id
: 經過ID查找元素,好比:#logo
.class
: 經過class名稱查找元素,好比:.masthead
[attribute]
: 利用屬性查找元素,好比:[href]
[^attr]
: 利用屬性名前綴來查找元素,好比:能夠用[^data-]
來查找帶有HTML5 Dataset屬性的元素[attr=value]
: 利用屬性值來查找元素,好比:[width=500]
[attr^=value]
, [attr$=value]
, [attr*=value]
: 利用匹配屬性值開頭、結尾或包含屬性值來查找元素,好比:[href*=/path/]
[attr~=regex]
: 利用屬性值匹配正則表達式來查找元素,好比: img[src~=(?i)\.(png|jpe?g)]
*
: 這個符號將匹配全部元素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
siblingA ~ siblingX
: 查找A元素以前的同級X元素,好比:h1 ~ p
el, el, el
:多個選擇器組合,查找匹配任一選擇器的惟一元素,例如:div.masthead, div.logo
:lt(n)
: 查找哪些元素的同級索引值(它的位置在DOM樹中是相對於它的父節點)小於n,好比:td:lt(3)
表示小於三列的元素:gt(n)
:查找哪些元素的同級索引值大於n
,好比
: div p:gt(2)
表示哪些div中有包含2個以上的p元素:eq(n)
: 查找哪些元素的同級索引值與n
相等,好比:form input:eq(1)
表示包含一個input標籤的Form元素:has(seletor)
: 查找匹配選擇器包含元素的元素,好比: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)
: 查找自身包含文本匹配指定正則表達式的元素能夠查看Selector
API參考來了解更詳細的內容css3
本文轉載:http://www.open-open.com/jsoup/selector-syntax.htm,僅用於收藏正則表達式