net.sf.saxon.s9api
Class XPathSelector
java.lang.Object
net.sf.saxon.s9api.XPathSelector
- Iterable
public class XPathSelector
extends java.lang.Object
implements Iterable
An XPathSelector represents a compiled and loaded XPath expression ready for execution.
The XPathSelector holds details of the dynamic evaluation context for the XPath expression.
XdmValue | evaluate() - Evaluate the expression, returning the result as an
XdmValue (that is,
a sequence of nodes and/or atomic values).
|
XdmItem | evaluateSingle() - Evaluate the XPath expression, returning the result as an
XdmItem (that is,
a single node or atomic value).
|
XdmItem | getContextItem() - Get the context item used for evaluating the XPath expression.
|
Iterator | iterator() - Evaluate the expression, returning the result as an
Iterator (that is,
an iterator over a sequence of nodes and/or atomic values).
|
void | setContextItem(XdmItem item) - Set the context item for evaluating the XPath expression.
|
void | setVariable(QName name, XdmValue value) - Set the value of a variable
|
XPathSelector
protected XPathSelector(XPathExpression exp,
ArrayList declaredVariables)
evaluate
public XdmValue evaluate()
throws SaxonApiException
Evaluate the expression, returning the result as an
XdmValue
(that is,
a sequence of nodes and/or atomic values).
Note: Although a singleton result
may be represented as an
XdmItem
, there is
no guarantee that this will always be the case. If you know that the expression will return at
most one node or atomic value, it is best to use the
evaluateSingle
method, which
does guarantee that an
XdmItem
(or null) will be returned.
- An
XdmValue
representing the results of the expression.
evaluateSingle
public XdmItem evaluateSingle()
throws SaxonApiException
Evaluate the XPath expression, returning the result as an XdmItem
(that is,
a single node or atomic value).
- an
XdmItem
representing the result of the expression, or null if the expression
returns an empty sequence. If the expression returns a sequence of more than one item,
any items after the first are ignored.
getContextItem
public XdmItem getContextItem()
Get the context item used for evaluating the XPath expression.
This may be either a node or an atomic value. Most commonly it will be a document node,
which might be constructed using the Build method of the DocumentBuilder object.
- The context item for evaluating the expression, or null if no context item
has been set.
iterator
public Iterator iterator()
throws SaxonApiUncheckedException
Evaluate the expression, returning the result as an
Iterator
(that is,
an iterator over a sequence of nodes and/or atomic values).
Because an
XPathSelector
is an
Iterable
, it is possible to
iterate over the result using a Java 5 "for each" expression, for example:
XPathCompiler compiler = processor.newXPathCompiler();
XPathSelector seq = compiler.compile("1 to 20").load();
for (XdmItem item : seq) {
System.err.println(item);
}
- An iterator over the sequence that represents the results of the expression.
Each object in this sequence will be an instance of
XdmItem
. Note
that the expression may be evaluated lazily, which means that a successful response
from this method does not imply that the expression has executed successfully: failures
may be reported later while retrieving items from the iterator.
SaxonApiUncheckedException
- if a dynamic error occurs during XPath evaluation that
can be detected at this point. It is also possible that an SaxonApiUncheckedException will
be thrown by the hasNext()
method of the returned iterator.
setContextItem
public void setContextItem(XdmItem item)
throws SaxonApiException
Set the context item for evaluating the XPath expression.
This may be either a node or an atomic value. Most commonly it will be a document node,
which might be constructed using the DocumentBuilder.build
method.
item
- The context item for evaluating the expression. Must not be null.
setVariable
public void setVariable(QName name,
XdmValue value)
throws SaxonApiException
Set the value of a variable
name
- The name of the variable. This must match the name of a variable
that was declared to the XPathCompiler. No error occurs if the expression does not
actually reference a variable with this name.value
- The value to be given to the variable.
SaxonApiException
- if the variable has not been declared or if the type of the value
supplied does not conform to the required type that was specified when the variable was declared