# FILTERXML

web · from excel · excel: differs in detail · no sheets equivalent

selects values from an xml STRING with an xpath

## signature

```
FILTERXML(xml, xpath)
```

returns: `array`

## arguments

- xml: text: required
- xpath: text: required

## examples

formula and result, asserted in the engine test suite.

| formula | result | with |
| --- | --- | --- |
| `=FILTERXML("<r><t>alpha</t></r>", "//t")` | `alpha` | none |

## errors

error values observed from the engine: each with a call that produces it.

| error | produced by |
| --- | --- |
| `#VALUE!` | `=FILTERXML(2, 2)` |

## related

- [DECODEURL](https://deepcalc.com/docs/functions/decodeurl.md): decodes URL-encoded text
- [ENCODEURL](https://deepcalc.com/docs/functions/encodeurl.md): encodes text for use in URLs using percent encoding
- [IMPORTRANGE](https://deepcalc.com/docs/functions/importrange.md): imports a range from another deepcalc workbook, addressed as {namespace}/{name}: e.g. worldbank/gdp. Resolution is journaled, never live-silent: refreshing the workbook's Sources materializes the target values as ordinary ops, so every upstream change arrives as a reviewable diff. Each source can track the latest version or be pinned to a specific one (the Sources panel). Before the first refresh the cell shows #NAME?. The inline form ={ns}/{name}!worksheet!A1:B10 is equivalent.
- [QUERY](https://deepcalc.com/docs/functions/query.md): runs SQL-like query on data range

## navigate

- [all web functions](https://deepcalc.com/docs/functions/web-functions.md)
- [function index](https://deepcalc.com/docs/functions.md): all 602 functions
- [error values](https://deepcalc.com/docs/errors.md) · [concepts](https://deepcalc.com/docs/concepts.md) · [limits](https://deepcalc.com/docs/limits.md)
- [everything in one file](https://deepcalc.com/llms-full.txt)

source: https://deepcalc.com/docs/functions/filterxml