Module: Gammo::XPath

Included in:
Node::Document
Defined in:
lib/gammo/xpath.rb,
lib/gammo/xpath/errors.rb,
lib/gammo/xpath/parser.rb,
lib/gammo/xpath/context.rb,
lib/gammo/xpath/ast/axis.rb,
lib/gammo/xpath/ast/path.rb,
lib/gammo/xpath/node_set.rb,
lib/gammo/xpath/ast/value.rb,
lib/gammo/xpath/ast/function.rb,
lib/gammo/xpath/ast/node_test.rb,
lib/gammo/xpath/ast/expression.rb

Defined Under Namespace

Modules: AST Classes: NodeSet, Parser

Constant Summary collapse

ANY_TYPE =

Result types But features related to snapshot and ordered node are not supported. TODO: Support official result types.

- ORDERED_NODE_ITERATOR_TYPE
- UNORDERED_NODE_SNAPSHOT_TYPE
- ORDERED_NODE_SNAPSHOT_TYPE
0
NUMBER_TYPE =
1
STRING_TYPE =
2
BOOLEAN_TYPE =
3
UNORDERED_NODE_ITERATOR_TYPE =
4
ANY_UNORDERED_NODE_TYPE =
8
FIRST_ORDERED_NODE_TYPE =
9
Error =
Class.new(StandardError)
ParseError =
Class.new(Error)
NotFoundError =
Class.new(Error)
UnreachableError =
Class.new(Error)
TypeError =
Class.new(Error)

Instance Method Summary collapse

Instance Method Details

#xpath(expr, variables: {}, result_type: UNORDERED_NODE_ITERATOR_TYPE, context_node: self) ⇒ String, ...

Traverses DOM tree by a given expression, and returns a result according to the result type.

Parameters:

  • expr (String)
  • variables (Hash{Symbol => String, Symbol, Integer, TrueClass, FalseClass, #call}) (defaults to: {})
  • result_type (Integer) (defaults to: UNORDERED_NODE_ITERATOR_TYPE)
  • context_node (Gammo::Node) (defaults to: self)

Returns:



67
68
69
70
71
# File 'lib/gammo/xpath.rb', line 67

def xpath(expr, variables: {}, result_type: UNORDERED_NODE_ITERATOR_TYPE, context_node: self)
  Traverser.new(expr, result_type).evaluate(
    Context.new(node: context_node, variables: variables)
  )
end