HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/xpath/docs/namespace resolvers.md
# Namespace Resolvers

The methods on the [XPathEvaluator](XPathEvaluator.md) type can optionally take a namespace resolver to resolve 
namespace references in the XPath expression being evaluated.

There are three ways to specify a namespace resolver and you can use any one of them depending on which is 
most suited to your particular situation.

## Namespace Resolver Type 1: Plain object

A plain object with namespace prefixes as the keys and namespace URIs as the values:

Example usage:

```js
var evaluator = xpath.parse('/bk:book/hp:characters');
var characters = evaluator.select({
    node: myBookNode,
    namespaces: {
        'bk': 'http://sample.org/books/',
        'hp': 'http://sample.org/harrypotter/'
    }
});
```

## Namespace Resolver Type 2: Function

A function that takes a namespace prefix as a parameter and returns the corresponding namespace URI. 

Example usage:

```js
var evaluator = xpath.parse('/bk:book/hp:characters');
var characters = evaluator.select({
    node: myBookNode,
    namespaces: function (prefix) {
        if (prefix === 'bk') {
            return 'http://sample.org/books/';
        }
        if (prefix === 'hp') {
            return 'http://sample.org/books/';
        }
    }
});
```

## Namespace Resolver Type 3: Object with `getNamespace` method

An object with a method named `getNamespace` that works in the same way as the function-based namespace resolver 
described above.

Example usage:

```js
var evaluator = xpath.parse('/bk:book/hp:characters');
var characters = evaluator.select({
    node: myBookNode,
    namespaces: {
        getNamespace: function (prefix) {
            if (prefix === 'bk') {
                return 'http://sample.org/books/';
            }
            if (prefix === 'hp') {
                return 'http://sample.org/books/';
            }
        }
    }
});
```