Saxon.Api
Class XPathSelector
-
public class XPathSelector
- implements IEnumerable
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.
An XPathSelector
should not be used concurrently in multiple threads. It is safe,
however, to reuse the object within a single thread to evaluate the same XPath expression
several times.
Evaluating the expression does not change the context that has been established.
An XPathSelector
is always constructed by running the Load
method of
an XPathExecutable
.
The class XPathSelector
implements IEnumerable
, so it is possible to
enumerate the results in a for
expression.
Property Summary |
|
---|---|
XdmItem | ContextItem The context item for the XPath expression evaluation. |
XmlResolver | InputXmlResolver
The |
Method Summary |
|
---|---|
bool | EffectiveBooleanValue()
Evaluate the effective boolean value of the XPath expression, returning the result
as a |
XdmValue | Evaluate()
Evaluate the expression, returning the result as an |
XdmItem | EvaluateSingle()
Evaluate the XPath expression, returning the result as an |
IEnumerator | GetEnumerator()
Evaluate the expression, returning the result as an |
void | SetVariable(QName name, XdmValue value) Set the value of a variable |
Property Detail
ContextItem
The context item for the XPath expression evaluation.
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.
InputXmlResolver
The XmlResolver
to be used at run-time to resolve and dereference URIs
supplied to the doc()
function.
Method Detail
EffectiveBooleanValue
throws
DynamicError
Evaluate
throws
DynamicError
Evaluate the expression, returning the result as an XdmValue
(that is,
a sequence of nodes, atomic values, and possibly function items such as maps and arrays).
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.
Returns:
XdmValue
representing the results of the expression.
Throws:
Saxon.Api.DynamicError
if the evaluation of the XPath expression fails
with a dynamic error.
EvaluateSingle
throws
DynamicError
Evaluate the XPath expression, returning the result as an XdmItem
(that is,
a single node or atomic value).
Returns:
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.
Throws:
Saxon.Api.DynamicError
if the evaluation of the XPath expression fails
with a dynamic error.
GetEnumerator
throws
DynamicError
Evaluate the expression, returning the result as an IEnumerator
(that is,
an enumerator over a sequence of nodes and/or atomic values).
Returns:
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.
Throws:
Saxon.Api.DynamicError
if the evaluation of the XPath expression fails
with a dynamic error. However, some errors will not be detected during the invocation
of this
method, but only when stepping through the returned SequenceEnumerator
.
SetVariable
Set the value of a variable
Parameters:
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.
Evaluate the effective boolean value of the XPath expression, returning the result as a
Boolean
Returns:
Boolean
representing the result of the expression, converted to its effective boolean value as if by applying the XPathboolean()
functionThrows:
Saxon.Api.DynamicError
if the evaluation of the XPath expression fails with a dynamic error.