Class XPath
java.lang.Object
org.graalvm.shadowed.org.antlr.v4.runtime.tree.xpath.XPath
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
ParseTree.findAll(tree, pathString, parser).
But that is just shorthand for:
XPathp = newXPath(parser, pathString); return p.evaluate(tree);
See org.antlr.v4.test.TestXPath for descriptions. In short, this
allows operators:
- /
- root
- //
- anywhere
- !
- invert; this must appear directly after root or anywhere operator
and path elements:
- ID
- token name
- 'string'
- any string literal token from the grammar
- expr
- rule name
- *
- wildcard matching any node
Whitespace is not allowed.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturn a list of all nodes starting attas root that satisfy the path.static Collection<ParseTree> protected XPathElementgetXPathElement(Token wordToken, boolean anywhere) Convert word like*orIDorexprto a path element.
-
Field Details
-
WILDCARD
- See Also:
-
NOT
- See Also:
-
path
-
elements
-
parser
-
-
Constructor Details
-
XPath
-
-
Method Details
-
split
-
getXPathElement
Convert word like*orIDorexprto a path element.anywhereistrueif//precedes the word. -
findAll
-
evaluate
Return a list of all nodes starting attas root that satisfy the path. The root/is relative to the node passed toevaluate(org.graalvm.shadowed.org.antlr.v4.runtime.tree.ParseTree).
-