Packages

class XPath extends AnyRef

Represent a subset of XPath XML path syntax for use in identifying nodes in parse trees.

Split path into words and separators / and // via ANTLR itself then walk path elements from left to right. At each separator-word pair, find set of nodes. Next stage uses those as work list.

The basic interface is XPath#findAll(tree, pathString, parser). But that is just shorthand for:

`[[XPath]]` p = new `[[XPath#XPath XPath]]`(parser, pathString);
return p.`[[#evaluate evaluate]]`(tree);

See org.antlr.v4.test.TestXPath for descriptions. In short, this allows operators:

<dl> <dt>/</dt>

root
<dt>//</dt>
anywhere
<dt>!</dt>
invert; this must appear directly after root or anywhere operator
</dl>

and path elements:

<dl> <dt>ID</dt>

token name
<dt>'string'</dt>
any string literal token from the grammar
<dt>expr</dt>
rule name
<dt>*</dt>
wildcard matching any node
</dl>

Whitespace is not allowed.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. XPath
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new XPath(language: Language, path: String)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. def evaluate(t: PsiElement, elements: Array[XPathElement]): Collection[_ <: PsiElement]

    Return a list of all nodes starting at t as root that satisfy the path.

    Return a list of all nodes starting at t as root that satisfy the path. The root / is relative to the node passed to #evaluate.

  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  10. def getXPathElement(wordToken: Token, anywhere: Boolean): XPathElement

    Convert word like * or ID or expr to a path element.

    Convert word like * or ID or expr to a path element. anywhere is true if // precedes the word.

    Attributes
    protected[xpath]
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  16. def split(path: String): Array[XPathElement]
  17. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from AnyRef

Inherited from Any

Ungrouped