Class XPather

java.lang.Object
org.htmlcleaner.XPather

public class XPather extends Object

Utility for searching cleaned document tree with XPath expressions.

Examples of supported axes:
  • //div//a
  • //div//a[@id][@class]
  • /body/*[1]/@type
  • //div[3]//a[@id][@href='r/n4']
  • //div[last() >= 4]//./div[position() = last()])[position() > 22]//li[2]//a
  • //div[2]/@*[2]
  • data(//div//a[@id][@class])
  • //p/last()
  • //body//div[3][@class]//span[12.2invalid input: '<'position()]/@id
  • data(//a['v' invalid input: '<' @id])
  • Constructor Details

    • XPather

      public XPather(String expression)
      Constructor - creates XPather instance with specified XPath expression.
      Parameters:
      expression -
  • Method Details

    • evaluateAgainstNode

      public Object[] evaluateAgainstNode(TagNode node) throws XPatherException
      Main public method for this class - a way to execute XPath expression against specified TagNode instance.
      Parameters:
      node -
      Throws:
      XPatherException
    • evaluateAgainst

      protected Collection evaluateAgainst(Collection object, int from, int to, boolean isRecursive, int position, int last, boolean isFilterContext, Collection filterSource) throws XPatherException
      Throws:
      XPatherException
    • evaluateFunction

      protected Collection evaluateFunction(Collection source, int from, int to, int position, int last, boolean isFilterContext) throws XPatherException
      Evaluates specified function. Currently, following XPath functions are supported: last, position, text, count, data
      Parameters:
      source -
      from -
      to -
      position -
      last -
      Returns:
      Collection as the result of evaluation.
      Throws:
      XPatherException
    • filterByCondition

      protected Collection filterByCondition(Collection source, int from, int to) throws XPatherException
      Filter nodes satisfying the condition
      Parameters:
      source -
      from -
      to -
      Throws:
      XPatherException
    • evaluateLogic

      protected boolean evaluateLogic(Collection first, Collection second, String logicOperator)
      Evaluates logic operation on two collections.
      Parameters:
      first -
      second -
      logicOperator -
      Returns:
      Result of logic operation