org.jsoup.select
Class Selector

java.lang.Object
  extended by org.jsoup.select.Selector

public class Selector
extends Object

CSS-like element selector, that finds elements matching a query.

Selector syntax

A selector is a chain of simple selectors, seperated by combinators. Selectors are case insensitive (including against elements, attributes, and attribute values).

The universal selector (*) is implicit when no element selector is supplied (i.e. *.header and .header is equivalent).

PatternMatchesExample
*any element*
Ean element of type Eh1
ns|Ean element of type E in the namespace nsfb|name finds <fb:name> elements
E#idan Element with attribute ID of "id"div#wrap, #logo
E.classan Element with a class name of "class"div.left, .result
E[attr]an Element with the attribute named "attr"a[href], [title]
E[^attrPrefix]an Element with an attribute name starting with "attrPrefix". Use to find elements with HTML5 datasets[^data-], div[^data-]
E[attr=val]an Element with the attribute named "attr" and value equal to "val"img[width=500], a[rel=nofollow]
E[attr^=valPrefix]an Element with the attribute named "attr" and value starting with "valPrefix"a[href^=http:]
E[attr$=valSuffix]an Element with the attribute named "attr" and value ending with "valSuffix"img[src$=.png]
E[attr*=valContaining]an Element with the attribute named "attr" and value containing "valContaining"a[href*=/search/]
E[attr~=regex]an Element with the attribute named "attr" and value matching the regular expressionimg[src~=(?i)\\.(png|jpe?g)]
The above may be combined in any orderdiv.header[title]

Combinators

E Fan F element descended from an E elementdiv a, .logo h1
E > Fan F child of Eol > li
E + Fan F element immediately preceded by sibling Eli + li, div.head + div
E ~ Fan F element preceded by sibling Eh1 ~ p
E, F, Gany matching element E, F, or Ga[href], div, h3

Pseudo selectors

E:lt(n)an Element whose sibling index is less than ntd:lt(3) finds the first 2 cells of each row
E:gt(n)an Element whose sibling index is greater than ntd:gt(1) finds cells after skipping the first two
E:eq(n)an Element whose sibling index is equal to ntd:eq(0) finds the first cell of each row
E:has(selector)an Element that contains at least one element matching the selectordiv:has(p) finds divs that contain p elements
E:contains(text)an Element that contains the specified text. The search is case insensitive. The text may appear in the found Element, or any of its descendants.p:contains(jsoup) finds p elements containing the text "jsoup".
E:matches(regex)an Element whose text matches the specified regular expression. The text may appear in the found Element, or any of its descendants.td:matches(\\d+) finds table cells containing digits. div:matches((?i)login) finds divs containing the text, case insensitively.
E:containsOwn(text)an Element that directly contains the specified text. The search is case insensitive. The text must appear in the found Element, not any of its descendants.p:containsOwn(jsoup) finds p elements with own text "jsoup".
E:matchesOwn(regex)an Element whose own text matches the specified regular expression. The text must appear in the found Element, not any of its descendants.td:matchesOwn(\\d+) finds table cells directly containing digits. div:matchesOwn((?i)login) finds divs containing the text, case insensitively.

Author:
Jonathan Hedley, [email protected]
See Also:
Element.select(String)

Nested Class Summary
static class Selector.SelectorParseException
           
 
Method Summary
static Elements select(String query, Element root)
          Find elements matching selector.
static Elements select(String query, Iterable<Element> roots)
          Find elements matching selector.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

select

public static Elements select(String query,
                              Element root)
Find elements matching selector.

Parameters:
query - CSS selector
root - root element to descend into
Returns:
matching elements, empty if not

select

public static Elements select(String query,
                              Iterable<Element> roots)
Find elements matching selector.

Parameters:
query - CSS selector
roots - root elements to descend into
Returns:
matching elements, empty if not


Copyright © 2009-2010 Jonathan Hedley. All Rights Reserved.