# XPathExpression

Added in[API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

# XPathExpression

`
public


interface
XPathExpression
`  
`


`

|---------------------------------|
| javax.xml.xpath.XPathExpression |

<br />

*** ** * ** ***

<br />

`XPathExpression`provides access to compiled XPath expressions.

|                                                                                                                                                                                                                                         Evaluation of XPath Expressions.                                                                                                                                                                                                                                          ||
|-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| context   | If a request is made to evaluate the expression in the absence of a context item, an empty document node will be used for the context. For the purposes of evaluating XPath expressions, a DocumentFragment is treated like a Document node.                                                                                                                                                                                                                                                           |
| variables | If the expression contains a variable reference, its value will be found through the[XPathVariableResolver](https://developer.android.com/reference/javax/xml/xpath/XPathVariableResolver). An[XPathExpressionException](https://developer.android.com/reference/javax/xml/xpath/XPathExpressionException)is raised if the variable resolver is undefined or the resolver returns`null`for the variable. The value of a variable must be immutable through the course of any single evaluation. <br /> |
| functions | If the expression contains a function reference, the function will be found through the[XPathFunctionResolver](https://developer.android.com/reference/javax/xml/xpath/XPathFunctionResolver). An[XPathExpressionException](https://developer.android.com/reference/javax/xml/xpath/XPathExpressionException)is raised if the function resolver is undefined or the function resolver returns`null`for the function. <br />                                                                            |
| QNames    | QNames in the expression are resolved against the XPath namespace context.                                                                                                                                                                                                                                                                                                                                                                                                                             |
| result    | This result of evaluating an expression is converted to an instance of the desired return type. Valid return types are defined in[XPathConstants](https://developer.android.com/reference/javax/xml/xpath/XPathConstants). Conversion to the return type follows XPath conversion rules. <br />                                                                                                                                                                                                        |

<br />

**See also:**

- [XML Path Language (XPath) Version 1.0, Expressions](http://www.w3.org/TR/xpath#section-Expressions)

## Summary

|                                                                                                                                                                                                                                                                        ### Public methods                                                                                                                                                                                                                                                                         ||
|--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract `[String](https://developer.android.com/reference/java/lang/String) | ` `[evaluate](https://developer.android.com/reference/javax/xml/xpath/XPathExpression#evaluate(java.lang.Object))`(`[Object](https://developer.android.com/reference/java/lang/Object)` item) ` <br /> Evaluate the compiled XPath expression in the specified context and return the result as a`String`.                                                                                                                                                                        |
| ` abstract `[String](https://developer.android.com/reference/java/lang/String) | ` `[evaluate](https://developer.android.com/reference/javax/xml/xpath/XPathExpression#evaluate(org.xml.sax.InputSource))`(`[InputSource](https://developer.android.com/reference/org/xml/sax/InputSource)` source) ` <br /> Evaluate the compiled XPath expression in the context of the specified`InputSource`and return the result as a`String`.                                                                                                                                |
| ` abstract `[Object](https://developer.android.com/reference/java/lang/Object) | ` `[evaluate](https://developer.android.com/reference/javax/xml/xpath/XPathExpression#evaluate(org.xml.sax.InputSource,%20javax.xml.namespace.QName))`(`[InputSource](https://developer.android.com/reference/org/xml/sax/InputSource)` source, `[QName](https://developer.android.com/reference/javax/xml/namespace/QName)` returnType) ` <br /> Evaluate the compiled XPath expression in the context of the specified`InputSource`and return the result as the specified type. |
| ` abstract `[Object](https://developer.android.com/reference/java/lang/Object) | ` `[evaluate](https://developer.android.com/reference/javax/xml/xpath/XPathExpression#evaluate(java.lang.Object,%20javax.xml.namespace.QName))`(`[Object](https://developer.android.com/reference/java/lang/Object)` item, `[QName](https://developer.android.com/reference/javax/xml/namespace/QName)` returnType) ` <br /> Evaluate the compiled XPath expression in the specified context and return the result as the specified type.                                         |

## Public methods

### evaluate

Added in[API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract String evaluate (Object item)
```

<br />

Evaluate the compiled XPath expression in the specified context and return the result as a`String`.

This method calls[evaluate(java.lang.Object, javax.xml.namespace.QName)](https://developer.android.com/reference/javax/xml/xpath/XPathExpression#evaluate(java.lang.Object,%20javax.xml.namespace.QName))with a`returnType`of[XPathConstants.STRING](https://developer.android.com/reference/javax/xml/xpath/XPathConstants#STRING).

See[Evaluation of XPath Expressions](https://developer.android.com/reference/javax/xml/xpath/XPathExpression#XPathExpression-evaluation)for context item evaluation, variable, function and QName resolution and return type conversion.

If a`null`value is provided for`item`, an empty document will be used for the context.

<br />

|                                   Parameters                                    ||
|--------|-------------------------------------------------------------------------|
| `item` | `Object`: The starting context (node or node list, for example). <br /> |

|                                                                                    Returns                                                                                    ||
|--------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
| [String](https://developer.android.com/reference/java/lang/String) | The`String`that is the result of evaluating the expression and converting the result to a`String`. <br /> |

|                                                                        Throws                                                                        ||
|--------------------------------------------------------------------------------------------------------------|----------------------------------------|
| [XPathExpressionException](https://developer.android.com/reference/javax/xml/xpath/XPathExpressionException) | If the expression cannot be evaluated. |

### evaluate

Added in[API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract String evaluate (InputSource source)
```

<br />

Evaluate the compiled XPath expression in the context of the specified`InputSource`and return the result as a`String`.

This method calls[evaluate(org.xml.sax.InputSource, javax.xml.namespace.QName)](https://developer.android.com/reference/javax/xml/xpath/XPathExpression#evaluate(org.xml.sax.InputSource,%20javax.xml.namespace.QName))with a`returnType`of[XPathConstants.STRING](https://developer.android.com/reference/javax/xml/xpath/XPathConstants#STRING).

See[Evaluation of XPath Expressions](https://developer.android.com/reference/javax/xml/xpath/XPathExpression#XPathExpression-evaluation)for context item evaluation, variable, function and QName resolution and return type conversion.

If`source`is`null`, then a`NullPointerException`is thrown.

<br />

<br />

|                                    Parameters                                     ||
|----------|-------------------------------------------------------------------------|
| `source` | `InputSource`: The`InputSource`of the document to evaluate over. <br /> |

|                                                                                    Returns                                                                                    ||
|--------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
| [String](https://developer.android.com/reference/java/lang/String) | The`String`that is the result of evaluating the expression and converting the result to a`String`. <br /> |

|                                                                        Throws                                                                        ||
|--------------------------------------------------------------------------------------------------------------|----------------------------------------|
| [XPathExpressionException](https://developer.android.com/reference/javax/xml/xpath/XPathExpressionException) | If the expression cannot be evaluated. |
| [NullPointerException](https://developer.android.com/reference/java/lang/NullPointerException)               | If`source`is`null`.                    |

### evaluate

Added in[API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract Object evaluate (InputSource source, 
                QName returnType)
```

<br />

Evaluate the compiled XPath expression in the context of the specified`InputSource`and return the result as the specified type.

This method builds a data model for the[InputSource](https://developer.android.com/reference/org/xml/sax/InputSource)and calls[evaluate(java.lang.Object, javax.xml.namespace.QName)](https://developer.android.com/reference/javax/xml/xpath/XPathExpression#evaluate(java.lang.Object,%20javax.xml.namespace.QName))on the resulting document object.

See[Evaluation of XPath Expressions](https://developer.android.com/reference/javax/xml/xpath/XPathExpression#XPathExpression-evaluation)for context item evaluation, variable, function and QName resolution and return type conversion.

If`returnType`is not one of the types defined in[XPathConstants](https://developer.android.com/reference/javax/xml/xpath/XPathConstants), then an`IllegalArgumentException`is thrown.

If`source`or`returnType`is`null`, then a`NullPointerException`is thrown.

<br />

<br />

|                                      Parameters                                       ||
|--------------|-------------------------------------------------------------------------|
| `source`     | `InputSource`: The`InputSource`of the document to evaluate over. <br /> |
| `returnType` | `QName`: The desired return type. <br />                                |

|                                                                                     Returns                                                                                     ||
|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
| [Object](https://developer.android.com/reference/java/lang/Object) | The`Object`that is the result of evaluating the expression and converting the result to`returnType`. <br /> |

|                                                                                                                         Throws                                                                                                                          ||
|--------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| [XPathExpressionException](https://developer.android.com/reference/javax/xml/xpath/XPathExpressionException) | If the expression cannot be evaluated.                                                                                                    |
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException)       | If`returnType`is not one of the types defined in[XPathConstants](https://developer.android.com/reference/javax/xml/xpath/XPathConstants). |
| [NullPointerException](https://developer.android.com/reference/java/lang/NullPointerException)               | If`source`or`returnType`is`null`.                                                                                                         |

### evaluate

Added in[API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract Object evaluate (Object item, 
                QName returnType)
```

<br />

Evaluate the compiled XPath expression in the specified context and return the result as the specified type.

See[Evaluation of XPath Expressions](https://developer.android.com/reference/javax/xml/xpath/XPathExpression#XPathExpression-evaluation)for context item evaluation, variable, function and QName resolution and return type conversion.

If`returnType`is not one of the types defined in[XPathConstants](https://developer.android.com/reference/javax/xml/xpath/XPathConstants), then an`IllegalArgumentException`is thrown.

If a`null`value is provided for`item`, an empty document will be used for the context. If`returnType`is`null`, then a`NullPointerException`is thrown.

<br />

<br />

|                                      Parameters                                       ||
|--------------|-------------------------------------------------------------------------|
| `item`       | `Object`: The starting context (node or node list, for example). <br /> |
| `returnType` | `QName`: The desired return type. <br />                                |

|                                                                                     Returns                                                                                     ||
|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
| [Object](https://developer.android.com/reference/java/lang/Object) | The`Object`that is the result of evaluating the expression and converting the result to`returnType`. <br /> |

|                                                                                                                         Throws                                                                                                                          ||
|--------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| [XPathExpressionException](https://developer.android.com/reference/javax/xml/xpath/XPathExpressionException) | If the expression cannot be evaluated.                                                                                                    |
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException)       | If`returnType`is not one of the types defined in[XPathConstants](https://developer.android.com/reference/javax/xml/xpath/XPathConstants). |
| [NullPointerException](https://developer.android.com/reference/java/lang/NullPointerException)               | If`returnType`is`null`.                                                                                                                   |