schangxiang@126.com
2025-09-18 49a51c068d62084bc4c3e77c4be94a20de556c4a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# 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/';
            }
        }
    }
});
```