Class QueryParser

java.lang.Object
org.jsoup.select.QueryParser
All Implemented Interfaces:
AutoCloseable

public class QueryParser extends Object implements AutoCloseable
Parses a CSS selector into an Evaluator tree.
  • Field Details

    • Combinators

      private static final char[] Combinators
    • AttributeEvals

      private static final String[] AttributeEvals
    • SequenceEnders

      private static final char[] SequenceEnders
    • tq

      private final TokenQueue tq
    • query

      private final String query
    • inNodeContext

      private boolean inNodeContext
    • NthStepOffset

      private static final Pattern NthStepOffset
    • NthOffset

      private static final Pattern NthOffset
  • Constructor Details

    • QueryParser

      private QueryParser(String query)
      Create a new QueryParser.
      Parameters:
      query - CSS query
  • Method Details

    • parse

      public static Evaluator parse(String query)
      Parse a CSS query into an Evaluator. If you are evaluating the same query repeatedly, it may be more efficient to parse it once and reuse the Evaluator.
      Parameters:
      query - CSS query
      Returns:
      Evaluator
      Throws:
      Selector.SelectorParseException - if the CSS query is invalid
      See Also:
    • parse

      Evaluator parse()
      Parse the query. We use this simplified expression of the grammar:
           SelectorGroup   ::= Selector (',' Selector)*
           Selector        ::= [ Combinator ] SimpleSequence ( Combinator SimpleSequence )*
           SimpleSequence  ::= [ TypeSelector ] ( ID | Class | Attribute | Pseudo )*
           Pseudo           ::= ':' Name [ '(' SelectorGroup ')' ]
           Combinator      ::= S+         // descendant (whitespace)
           | '>'       // child
           | '+'       // adjacent sibling
           | '~'       // general sibling
           
      See selectors-4 for the real thing
    • parseSelectorGroup

      Evaluator parseSelectorGroup()
    • parseSelector

      Evaluator parseSelector()
    • parseSimpleSequence

      Evaluator parseSimpleSequence()
    • combinator

      static Evaluator combinator(Evaluator left, char combinator, Evaluator right)
    • parseSubclass

      Evaluator parseSubclass()
    • or

      static Evaluator or(Evaluator left, Evaluator right)
      Merge two evals into an Or.
    • and

      static Evaluator and(Evaluator left, Evaluator right)
      Merge two evals into an And.
    • parsePseudoSelector

      private Evaluator parsePseudoSelector()
    • parseNodeSelector

      private Evaluator parseNodeSelector()
    • byId

      private Evaluator byId()
    • byClass

      private Evaluator byClass()
    • byTag

      private Evaluator byTag()
    • byAttribute

      private Evaluator byAttribute()
    • evaluatorForAttribute

      private Evaluator evaluatorForAttribute(TokenQueue cq)
    • cssNthChild

      private Evaluator cssNthChild(boolean last, boolean ofType)
    • consumeParens

      private String consumeParens()
    • consumeIndex

      private int consumeIndex()
    • has

      private Evaluator has()
    • is

      private Evaluator is()
    • parseNested

      private Evaluator parseNested(Function<Evaluator,Evaluator> func, String err)
    • contains

      private Evaluator contains(boolean own)
    • containsWholeText

      private Evaluator containsWholeText(boolean own)
    • containsData

      private Evaluator containsData()
    • matches

      private Evaluator matches(boolean own)
    • matchesWholeText

      private Evaluator matchesWholeText(boolean own)
    • not

      private Evaluator not()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable