NAME
HTML::Object::XPath::Expr - HTML Object XPath Expression
SYNOPSIS
use HTML::Object::XPath::Expr;
my $this = HTML::Object::XPath::Expr->new || die( HTML::Object::XPath::Expr->error, "\n" );
VERSION
v0.2.0
DESCRIPTION
This modules represents an HTML::Object::XPath expression.
METHODS
new
Provided with an HTML::Object::XPath object and this returns a new HTML::Object::XPath::Expr object.
as_string
Returns the expression as a string.
as_xml
Returns the expression as xml.
evaluate
Provided with a HTML::Object::XPath::NodeSet object, and this will call "op_eval" with an operator has been set, otherwise, it calls "evaluate" in HTML::Object::XPath::LocationPath passing it the node set. It returns the result from either call.
filter_by_predicate
This takes a nodeset object and a predicate.
For each node in the node-set to be filtered, the predicate Expr is evaluated with that node as the context node, with the number of nodes in the node set as the context size, and with the proximity position of the node in the node set with respect to the axis as the context position.
It returns a new node set object.
get_lhs
Returns the HTML::Object::XPath::LocationPath object for the left-hand side of the expression.
get_rhs
Returns the HTML::Object::XPath::LocationPath object for the right-hand side of the expression.
get_op
Returns the current operator set for this expression.
new_literal
Returns a new literal object, passing it whatever argument was provided.
new_nodeset
Returns a new node set object, passing it whatever argument was provided.
new_number
Returns a new number object, passing it whatever argument was provided.
op_and
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will evaluate the node using the left-hand side LocationPath object, and return false if it failed, or otherwise it wil evaluate the node using the right-hand side LocationPath object and return its result.
op_div
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will attempt to divide the left-hand value by the right-hand value. If ther eis an error, it returns infinity, otherwise it returns the value from the division as a number object.
op_equals
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will check if the left-hand side LocationPath is equal tot he right-hand side LocationPath. Returns true or false
op_eval
This method will evaluate the node provided with the left-hand side and right-hand side LocationPath objects object also specified by calling the appropriate method in this module based on the operator value set with "op"
op_ge
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will check if the left-hand side is greater or equal to the right-hand side.
op_gt
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will check if the left-hand side is greater than the right-hand side.
op_le
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will check if the left-hand side is lower or equal than the right-hand side.
op_lt
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will check if the left-hand side is lower than the right-hand side.
op_match
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will check if the left-hand side match the right-hand side as a regular expression.
op_minus
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will subtract the right-hand side from the left-hand side and return the result as a number object.
op_mod
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will get the modulo between the left-hand side and the right-hand side and return the result as a number object.
op_mult
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will multiply the right-hand side by the left-hand side and return the result as a number object.
op_nequals
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will return true if the left-hand side is not equal to the right-hand side, or false otherwise.
op_not_match
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will check if the left-hand side does not match the right-hand side as a regular expression.
op_or
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will evaluate the node using the left-hand side LocationPath and return true if it worked, or otherwise return the value from evaluating the node using the right-hand side LocationPath.
op_plus
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will add the right-hand side to the left-hand side and return the result as a number object.
op_union
Provided a node object, a left-hand side and right-hand side LocationPath objects and this will evaluate the node both by the left-hand side and right-hand side LocationPath and return a new node set array object containing all the unique nodes resulting from those both evaluation.
op_xml
Provided with an operator and this returns its xml equivalent.
Operators supported are: and
, div
, mod
, or
, =
, !=
, <=
, =>,
>,
<
, +
, -
, *
, |
They will be converted respectively to: And
, Div
, Mod
, Or
, Equals
, NotEquals
, LessThanOrEquals
, GreaterThanOrEquals
, GreaterThan
, LessThan
, Plus
, Minus
, Multiply
, Union
predicates
Set or get the predicates as an array object
push_predicate
Add the predicate to the list and will raise an exception if more than one predicate was provided.
set_lhs
Set the left-hand side LocationPath
set_op
Set the operator for this expression.
set_rhs
Set the right-hand side LocationPath
AUTHOR
Jacques Deguest <jack@deguest.jp>
SEE ALSO
HTML::Object::XPath, HTML::Object::XPath::Boolean, HTML::Object::XPath::Expr, HTML::Object::XPath::Function, HTML::Object::XPath::Literal, HTML::Object::XPath::LocationPath, HTML::Object::XPath::NodeSet, HTML::Object::XPath::Number, HTML::Object::XPath::Root, HTML::Object::XPath::Step, HTML::Object::XPath::Variable
COPYRIGHT & LICENSE
Copyright(c) 2021 DEGUEST Pte. Ltd.
All rights reserved
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.