org.jaxen
public class BaseXPath extends Object implements XPath, Serializable
This class provides generic functionality for further-defined implementation-specific XPaths.
If you want to adapt the Jaxen engine so that it can traverse your own object model, then this is a good base class to derive from. Typically you only really need to provide your own Navigator implementation.
See Also: XPath for dom4j
XPath for JDOM
XPath for W3C DOM
Field Summary | |
---|---|
String | exprText Original expression text. |
Navigator | navigator the implementation-specific Navigator for retrieving XML nodes * |
ContextSupport | support the support information and function, namespace and variable contexts |
XPathExpr | xpath the parsed form of the XPath expression |
Constructor Summary | |
---|---|
protected | BaseXPath(String xpathExpr) Construct given an XPath expression string.
|
BaseXPath(String xpathExpr, Navigator navigator) Construct given an XPath expression string.
|
Method Summary | |
---|---|
void | addNamespace(String prefix, String uri) Add a namespace prefix-to-URI mapping for this XPath
expression.
|
boolean | booleanValueOf(Object node) Retrieve a boolean-value interpretation of this XPath
expression when evaluated against a given context.
|
protected FunctionContext | createFunctionContext() Create a default FunctionContext .
|
protected NamespaceContext | createNamespaceContext() Create a default NamespaceContext .
|
protected VariableContext | createVariableContext() Create a default VariableContext .
|
String | debug() Returns a string representation of the parse tree.
|
Object | evaluate(Object context) Evaluate this XPath against a given context.
|
protected Context | getContext(Object node) Create a Context wrapper for the provided
implementation-specific object.
|
protected ContextSupport | getContextSupport() Retrieve the ContextSupport aggregation of
NamespaceContext , FunctionContext ,
VariableContext , and Navigator.
|
FunctionContext | getFunctionContext() Retrieve the FunctionContext used by this XPath
expression.
|
NamespaceContext | getNamespaceContext() Retrieve the NamespaceContext used by this XPath
expression.
|
Navigator | getNavigator() Retrieve the XML object-model-specific Navigator
for us in evaluating this XPath expression.
|
Expr | getRootExpr() Retrieve the root expression of the internal
compiled form of this XPath expression.
|
VariableContext | getVariableContext() Retrieve the VariableContext used by this XPath
expression.
|
Number | numberValueOf(Object node) Retrieve a number-value interpretation of this XPath
expression when evaluated against a given context.
|
List | selectNodes(Object node) Select all nodes that are selected by this XPath
expression. |
protected List | selectNodesForContext(Context context) Select all nodes that match this XPath
expression on the given Context object.
|
Object | selectSingleNode(Object node) Select only the first node selected by this XPath
expression. |
protected Object | selectSingleNodeForContext(Context context) Return only the first node that is selected by this XPath
expression. |
void | setFunctionContext(FunctionContext functionContext) Set a FunctionContext for use with this XPath
expression.
|
void | setNamespaceContext(NamespaceContext namespaceContext) Set a NamespaceContext for use with this
XPath expression.
|
void | setVariableContext(VariableContext variableContext) Set a VariableContext for use with this XPath
expression.
|
String | stringValueOf(Object node) Retrieves the string-value of the result of
evaluating this XPath expression when evaluated
against the specified context.
|
String | toString() Return the original expression text.
|
String | valueOf(Object node)
Returns the XPath string-value of the argument node.
|
Parameters: xpathExpr the XPath expression
Throws: JaxenException if there is a syntax error while parsing the expression
Parameters: xpathExpr the XPath expression navigator the XML navigator to use
Throws: JaxenException if there is a syntax error while parsing the expression
Namespace prefix-to-URI mappings in an XPath are independent of those used within any document. Only the mapping explicitly added to this XPath will be available for resolving the XPath expression.
This is a convenience method for adding mappings to the
default NamespaceContext in place for this XPath.
If you have installed a custom NamespaceContext
that is not a SimpleNamespaceContext
,
then this method will throw a JaxenException
.
Parameters: prefix the namespace prefix uri the namespace URI
Throws: JaxenException if the NamespaceContext
used by this XPath is not a SimpleNamespaceContext
The boolean-value of the expression is determined per
the boolean(..)
function defined
in the XPath specification. This means that an expression
that selects zero nodes will return false
,
while an expression that selects one or more nodes will
return true
.
Parameters: node the node, node-set or Context object for evaluation. This value can be null.
Returns: the boolean-value of the result of evaluating this expression with the specified context node
Throws: JaxenException if an XPath error occurs during expression evaluation
FunctionContext
.
Returns: a default FunctionContext
NamespaceContext
.
Returns: a default NamespaceContext
instance
VariableContext
.
Returns: a default VariableContext
instance
Returns: a string representation of the parse tree.
String
,
Double
, Boolean
, or List
of nodes.
When using this method, one must be careful to
test the class of the returned object. If the returned
object is a list, then the items in this
list will be the actual Document
,
Element
, Attribute
, etc. objects
as defined by the concrete XML object-model implementation,
directly from the context document. This method does
not return copies of anything, but merely
returns references to objects within the source document.
Parameters: context the node, node-set or Context object for evaluation. This value can be null.
Returns: the result of evaluating the XPath expression against the supplied context
Throws: JaxenException if an XPath error occurs during expression evaluation ClassCastException if the context is not a node
Parameters: node the implementation-specific object to be used as the context
Returns: a Context
wrapper around the object
NamespaceContext
, FunctionContext
,
VariableContext
, and Navigator.
Returns: aggregate ContextSupport
for this
XPath expression
FunctionContext
used by this XPath
expression.
A FunctionContext
is responsible for resolving
all function calls used within the expression.
If this XPath expression has not previously had a FunctionContext
installed, a new default FunctionContext
will be created,
installed and returned.
Returns: the FunctionContext
used by this expression
See Also: FunctionContext
NamespaceContext
used by this XPath
expression.
A NamespaceContext
is responsible for mapping
prefixes used within the expression to namespace URIs.
If this XPath expression has not previously had a NamespaceContext
installed, a new default NamespaceContext
will be created,
installed and returned.
Returns: the NamespaceContext
used by this expression
See Also: NamespaceContext
Returns: the implementation-specific Navigator
Internally, Jaxen maintains a form of Abstract Syntax Tree (AST) to represent the structure of the XPath expression. This is normally not required during normal consumer-grade usage of Jaxen. This method is provided for hard-core users who wish to manipulate or inspect a tree-based version of the expression.
Returns: the root of the AST of this expression
VariableContext
used by this XPath
expression.
A VariableContext
is responsible for resolving
all variables referenced within the expression.
If this XPath expression has not previously had a VariableContext
installed, a new default VariableContext
will be created,
installed and returned.
Returns: the VariableContext
used by this expression
See Also: VariableContext
The number-value of the expression is determined per
the number(..)
core function as defined
in the XPath specification. This means that if this
expression selects multiple nodes, the number-value
of the first node is returned.
Parameters: node the node, node-set or Context object for evaluation. This value can be null.
Returns: a Double
indicating the numeric value of
evaluating this expression against the specified context
Throws: JaxenException if an XPath error occurs during expression evaluation
Parameters: node the node, node-set or Context object for evaluation. This value can be null.
Returns: the node-set of all items selected by this XPath expression
Throws: JaxenException if an XPath error occurs during expression evaluation
See Also: BaseXPath
Parameters: context the Context which gets evaluated
Returns: the node-set of all items selected by this XPath expression
Throws: JaxenException if an XPath error occurs during expression evaluation
Parameters: node the node, node-set or Context object for evaluation. This value can be null.
Returns: the node-set of all items selected by this XPath expression
Throws: JaxenException if an XPath error occurs during expression evaluation
See Also: BaseXPath
Parameters: context the Context against which this expression is evaluated
Returns: the first node in document order of all nodes selected by this XPath expression
Throws: JaxenException if an XPath error occurs during expression evaluation
See Also: BaseXPath
FunctionContext
for use with this XPath
expression.
A FunctionContext
is responsible for resolving
all function calls used within the expression.
Parameters: functionContext the FunctionContext
to
install for this expression
See Also: FunctionContext FunctionContext
NamespaceContext
for use with this
XPath expression.
A NamespaceContext
is responsible for translating
namespace prefixes within the expression into namespace URIs.
Parameters: namespaceContext the NamespaceContext
to
install for this expression
See Also: NamespaceContext NamespaceContext
VariableContext
for use with this XPath
expression.
A VariableContext
is responsible for resolving
all variables referenced within the expression.
Parameters: variableContext The VariableContext
to
install for this expression
See Also: VariableContext VariableContext
The string-value of the expression is determined per
the string(..)
core function defined
in the XPath specification. This means that an expression
that selects zero nodes will return the empty string,
while an expression that selects one-or-more nodes will
return the string-value of the first node.
Parameters: node the node, node-set or Context object for evaluation. This value can be null.
Returns: the string-value of the result of evaluating this expression with the specified context node
Throws: JaxenException if an XPath error occurs during expression evaluation
Returns: the normalized XPath expression string
Deprecated: replaced by BaseXPath
Returns the XPath string-value of the argument node.Parameters: node the node whose value to take
Returns: the XPath string value of this node
Throws: JaxenException if an XPath error occurs during expression evaluation