XPathResult
===========

The **`XPathResult`** interface represents the results generated by evaluating an XPath expression within the context of a given node.

Since XPath expressions can result in a variety of result types, this interface makes it possible to determine and handle the type and value of the result.

Instance properties
-------------------

`XPathResult.booleanValue` Read only 

A `boolean` representing the value of the result if `resultType` is `BOOLEAN_TYPE`.

`XPathResult.invalidIteratorState` Read only 

Signifies that the iterator has become invalid. It is `true` if `resultType` is `UNORDERED_NODE_ITERATOR_TYPE` or `ORDERED_NODE_ITERATOR_TYPE` and the document has been modified since this result was returned.

`XPathResult.numberValue` Read only 

A `number` representing the value of the result if `resultType` is `NUMBER_TYPE`.

`XPathResult.resultType` Read only 

A `number` code representing the type of the result, as defined by the type constants.

`XPathResult.singleNodeValue` Read only 

A `Node` representing the value of the single node result, which may be `null`.

`XPathResult.snapshotLength` Read only 

The number of nodes in the result snapshot.

`XPathResult.stringValue` Read only 

A string representing the value of the result if `resultType` is `STRING_TYPE`.

Instance methods
----------------

`XPathResult.iterateNext()`

If the result is a node set, this method iterates over it and returns the next node from it or `null` if there are no more nodes.

`XPathResult.snapshotItem()`

Returns an item of the snapshot collection or `null` in case the index is not within the range of nodes. Unlike the iterator result, the snapshot does not become invalid, but may not correspond to the current document if it is mutated.

Constants
---------

| Result Type Defined Constant | Value | Description |
| --- | --- | --- |
| `ANY_TYPE` | `0` | 
 A result set containing whatever type naturally results from evaluation
 of the expression. Note that if the result is a node-set then
 `UNORDERED_NODE_ITERATOR_TYPE` is always the resulting type.
  |
| `NUMBER_TYPE` | `1` | 
 A result containing a single number. This is useful for example, in an
 XPath expression using the `count()` function.
  |
| `STRING_TYPE` | `2` | A result containing a single string. |
| `BOOLEAN_TYPE` | `3` | 
 A result containing a single boolean value. This is useful for example,
 in an XPath expression using the `not()` function.
  |
| `UNORDERED_NODE_ITERATOR_TYPE` | `4` | 
 A result node-set containing all the nodes matching the expression. The
 nodes may not necessarily be in the same order that they appear in the
 document.
  |
| `ORDERED_NODE_ITERATOR_TYPE` | `5` | 
 A result node-set containing all the nodes matching the expression. The
 nodes in the result set are in the same order that they appear in the
 document.
  |
| `UNORDERED_NODE_SNAPSHOT_TYPE` | `6` | 
 A result node-set containing snapshots of all the nodes matching the
 expression. The nodes may not necessarily be in the same order that they
 appear in the document.
  |
| `ORDERED_NODE_SNAPSHOT_TYPE` | `7` | 
 A result node-set containing snapshots of all the nodes matching the
 expression. The nodes in the result set are in the same order that they
 appear in the document.
  |
| `ANY_UNORDERED_NODE_TYPE` | `8` | 
 A result node-set containing any single node that matches the
 expression. The node is not necessarily the first node in the document
 that matches the expression.
  |
| `FIRST_ORDERED_NODE_TYPE` | `9` | 
 A result node-set containing the first node in the document that matches
 the expression.
  |

Specifications
--------------

| Specification |
| --- |
| DOM Standard # interface-xpathresult |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* `Document.evaluate()`
* `XPathExpression`
* Dottoro Web Reference - XPathResult object