xslt-processor 3.0.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/constants.d.ts +12 -12
- package/constants.js +16 -16
- package/dom/functions.d.ts +14 -14
- package/dom/functions.js +56 -57
- package/dom/functions.js.map +1 -1
- package/dom/index.d.ts +6 -6
- package/dom/index.js +22 -22
- package/dom/util.d.ts +7 -7
- package/dom/util.js +42 -43
- package/dom/util.js.map +1 -1
- package/dom/xdocument.d.ts +16 -16
- package/dom/xdocument.js +73 -74
- package/dom/xdocument.js.map +1 -1
- package/dom/xml-functions.d.ts +58 -58
- package/dom/xml-functions.js +369 -370
- package/dom/xml-functions.js.map +1 -1
- package/dom/xml-output-options.d.ts +6 -6
- package/dom/xml-output-options.js +2 -2
- package/dom/xml-parser.d.ts +47 -47
- package/dom/xml-parser.js +307 -307
- package/dom/xml-parser.js.map +1 -1
- package/dom/xmltoken.d.ts +12 -12
- package/dom/xmltoken.js +101 -101
- package/dom/xnode.d.ts +73 -73
- package/dom/xnode.js +450 -450
- package/dom/xnode.js.map +1 -1
- package/index.d.ts +4 -4
- package/index.js +12 -12
- package/package.json +11 -11
- package/test-without-jest.d.ts +1 -0
- package/test-without-jest.js +63 -0
- package/test-without-jest.js.map +1 -0
- package/umd/constants.d.ts +12 -12
- package/umd/dom/functions.d.ts +14 -14
- package/umd/dom/index.d.ts +6 -6
- package/umd/dom/util.d.ts +7 -7
- package/umd/dom/xdocument.d.ts +16 -16
- package/umd/dom/xml-functions.d.ts +58 -58
- package/umd/dom/xml-output-options.d.ts +6 -6
- package/umd/dom/xml-parser.d.ts +47 -47
- package/umd/dom/xmltoken.d.ts +12 -12
- package/umd/dom/xnode.d.ts +73 -73
- package/umd/index.d.ts +4 -4
- package/umd/test-without-jest.d.ts +1 -0
- package/umd/xpath/common-function.d.ts +8 -8
- package/umd/xpath/expr-context.d.ts +111 -111
- package/umd/xpath/expressions/binary-expr.d.ts +11 -11
- package/umd/xpath/expressions/expression.d.ts +4 -4
- package/umd/xpath/expressions/filter-expr.d.ts +9 -9
- package/umd/xpath/expressions/function-call-expr.d.ts +12 -12
- package/umd/xpath/expressions/index.d.ts +13 -13
- package/umd/xpath/expressions/literal-expr.d.ts +7 -7
- package/umd/xpath/expressions/location-expr.d.ts +15 -15
- package/umd/xpath/expressions/number-expr.d.ts +7 -7
- package/umd/xpath/expressions/path-expr.d.ts +9 -9
- package/umd/xpath/expressions/predicate-expr.d.ts +8 -8
- package/umd/xpath/expressions/step-expr.d.ts +25 -25
- package/umd/xpath/expressions/token-expr.d.ts +7 -7
- package/umd/xpath/expressions/unary-minus-expr.d.ts +8 -8
- package/umd/xpath/expressions/union-expr.d.ts +9 -9
- package/umd/xpath/expressions/variable-expr.d.ts +7 -7
- package/umd/xpath/functions/index.d.ts +2 -2
- package/umd/xpath/functions/internal-functions.d.ts +2 -2
- package/umd/xpath/functions/non-standard.d.ts +12 -12
- package/umd/xpath/functions/standard-20.d.ts +5 -5
- package/umd/xpath/functions/standard.d.ts +40 -40
- package/umd/xpath/grammar-rule-candidate.d.ts +8 -8
- package/umd/xpath/index.d.ts +3 -3
- package/umd/xpath/match-resolver.d.ts +55 -55
- package/umd/xpath/node-tests/index.d.ts +8 -8
- package/umd/xpath/node-tests/node-test-any.d.ts +6 -6
- package/umd/xpath/node-tests/node-test-comment.d.ts +6 -6
- package/umd/xpath/node-tests/node-test-element-or-attribute.d.ts +6 -6
- package/umd/xpath/node-tests/node-test-name.d.ts +10 -10
- package/umd/xpath/node-tests/node-test-nc.d.ts +9 -9
- package/umd/xpath/node-tests/node-test-pi.d.ts +8 -8
- package/umd/xpath/node-tests/node-test-text.d.ts +6 -6
- package/umd/xpath/node-tests/node-test.d.ts +5 -5
- package/umd/xpath/tokens.d.ts +62 -62
- package/umd/xpath/values/boolean-value.d.ts +11 -11
- package/umd/xpath/values/index.d.ts +5 -5
- package/umd/xpath/values/node-set-value.d.ts +11 -11
- package/umd/xpath/values/node-value.d.ts +7 -7
- package/umd/xpath/values/number-value.d.ts +11 -11
- package/umd/xpath/values/string-value.d.ts +11 -11
- package/umd/xpath/xpath-grammar-rules.d.ts +68 -68
- package/umd/xpath/xpath-token-rule.d.ts +7 -7
- package/umd/xpath/xpath.d.ts +174 -170
- package/umd/xpathdebug.d.ts +2 -2
- package/umd/xslt/index.d.ts +3 -3
- package/umd/xslt/xslt-decimal-format-settings.d.ts +28 -28
- package/umd/xslt/xslt-options.d.ts +7 -7
- package/umd/xslt/xslt-parameter.d.ts +5 -5
- package/umd/xslt/xslt.d.ts +207 -190
- package/umd/xslt-processor.js +1 -15
- package/umd/xslt-processor.js.map +1 -1
- package/xpath/common-function.d.ts +8 -8
- package/xpath/common-function.js +31 -32
- package/xpath/common-function.js.map +1 -1
- package/xpath/expr-context.d.ts +111 -111
- package/xpath/expr-context.js +189 -189
- package/xpath/expr-context.js.map +1 -1
- package/xpath/expressions/binary-expr.d.ts +11 -11
- package/xpath/expressions/binary-expr.js +165 -165
- package/xpath/expressions/binary-expr.js.map +1 -1
- package/xpath/expressions/expression.d.ts +4 -4
- package/xpath/expressions/expression.js +9 -9
- package/xpath/expressions/filter-expr.d.ts +9 -9
- package/xpath/expressions/filter-expr.js +52 -52
- package/xpath/expressions/filter-expr.js.map +1 -1
- package/xpath/expressions/function-call-expr.d.ts +12 -12
- package/xpath/expressions/function-call-expr.js +95 -95
- package/xpath/expressions/function-call-expr.js.map +1 -1
- package/xpath/expressions/index.d.ts +13 -13
- package/xpath/expressions/index.js +29 -29
- package/xpath/expressions/literal-expr.d.ts +7 -7
- package/xpath/expressions/literal-expr.js +33 -33
- package/xpath/expressions/literal-expr.js.map +1 -1
- package/xpath/expressions/location-expr.d.ts +15 -15
- package/xpath/expressions/location-expr.js +98 -98
- package/xpath/expressions/location-expr.js.map +1 -1
- package/xpath/expressions/number-expr.d.ts +7 -7
- package/xpath/expressions/number-expr.js +33 -33
- package/xpath/expressions/number-expr.js.map +1 -1
- package/xpath/expressions/path-expr.d.ts +9 -9
- package/xpath/expressions/path-expr.js +51 -51
- package/xpath/expressions/path-expr.js.map +1 -1
- package/xpath/expressions/predicate-expr.d.ts +8 -8
- package/xpath/expressions/predicate-expr.js +40 -40
- package/xpath/expressions/predicate-expr.js.map +1 -1
- package/xpath/expressions/step-expr.d.ts +25 -25
- package/xpath/expressions/step-expr.js +280 -280
- package/xpath/expressions/step-expr.js.map +1 -1
- package/xpath/expressions/token-expr.d.ts +7 -7
- package/xpath/expressions/token-expr.js +33 -33
- package/xpath/expressions/token-expr.js.map +1 -1
- package/xpath/expressions/unary-minus-expr.d.ts +8 -8
- package/xpath/expressions/unary-minus-expr.js +33 -33
- package/xpath/expressions/unary-minus-expr.js.map +1 -1
- package/xpath/expressions/union-expr.d.ts +9 -9
- package/xpath/expressions/union-expr.js +50 -50
- package/xpath/expressions/union-expr.js.map +1 -1
- package/xpath/expressions/variable-expr.d.ts +7 -7
- package/xpath/expressions/variable-expr.js +32 -32
- package/xpath/expressions/variable-expr.js.map +1 -1
- package/xpath/functions/index.d.ts +2 -2
- package/xpath/functions/index.js +18 -18
- package/xpath/functions/internal-functions.d.ts +2 -2
- package/xpath/functions/internal-functions.js +21 -22
- package/xpath/functions/internal-functions.js.map +1 -1
- package/xpath/functions/non-standard.d.ts +12 -12
- package/xpath/functions/non-standard.js +44 -45
- package/xpath/functions/non-standard.js.map +1 -1
- package/xpath/functions/standard-20.d.ts +5 -5
- package/xpath/functions/standard-20.js +25 -26
- package/xpath/functions/standard-20.js.map +1 -1
- package/xpath/functions/standard.d.ts +40 -40
- package/xpath/functions/standard.js +441 -442
- package/xpath/functions/standard.js.map +1 -1
- package/xpath/grammar-rule-candidate.d.ts +8 -8
- package/xpath/grammar-rule-candidate.js +2 -2
- package/xpath/index.d.ts +3 -3
- package/xpath/index.js +19 -19
- package/xpath/match-resolver.d.ts +55 -55
- package/xpath/match-resolver.js +136 -136
- package/xpath/match-resolver.js.map +1 -1
- package/xpath/node-tests/index.d.ts +8 -8
- package/xpath/node-tests/index.js +17 -17
- package/xpath/node-tests/node-test-any.d.ts +6 -6
- package/xpath/node-tests/node-test-any.js +14 -14
- package/xpath/node-tests/node-test-comment.d.ts +6 -6
- package/xpath/node-tests/node-test-comment.js +14 -14
- package/xpath/node-tests/node-test-element-or-attribute.d.ts +6 -6
- package/xpath/node-tests/node-test-element-or-attribute.js +15 -15
- package/xpath/node-tests/node-test-name.d.ts +10 -10
- package/xpath/node-tests/node-test-name.js +38 -38
- package/xpath/node-tests/node-test-name.js.map +1 -1
- package/xpath/node-tests/node-test-nc.d.ts +9 -9
- package/xpath/node-tests/node-test-nc.js +16 -16
- package/xpath/node-tests/node-test-pi.d.ts +8 -8
- package/xpath/node-tests/node-test-pi.js +16 -16
- package/xpath/node-tests/node-test-pi.js.map +1 -1
- package/xpath/node-tests/node-test-text.d.ts +6 -6
- package/xpath/node-tests/node-test-text.js +14 -14
- package/xpath/node-tests/node-test.d.ts +5 -5
- package/xpath/node-tests/node-test.js +2 -2
- package/xpath/tokens.d.ts +62 -62
- package/xpath/tokens.js +300 -300
- package/xpath/tokens.js.map +1 -1
- package/xpath/values/boolean-value.d.ts +11 -11
- package/xpath/values/boolean-value.js +23 -23
- package/xpath/values/index.d.ts +5 -5
- package/xpath/values/index.js +46 -46
- package/xpath/values/node-set-value.d.ts +11 -11
- package/xpath/values/node-set-value.js +27 -27
- package/xpath/values/node-set-value.js.map +1 -1
- package/xpath/values/node-value.d.ts +7 -7
- package/xpath/values/node-value.js +2 -2
- package/xpath/values/number-value.d.ts +11 -11
- package/xpath/values/number-value.js +23 -23
- package/xpath/values/string-value.d.ts +11 -11
- package/xpath/values/string-value.js +23 -23
- package/xpath/xpath-grammar-rules.d.ts +68 -68
- package/xpath/xpath-grammar-rules.js +74 -74
- package/xpath/xpath-token-rule.d.ts +7 -7
- package/xpath/xpath-token-rule.js +2 -2
- package/xpath/xpath.d.ts +174 -170
- package/xpath/xpath.js +911 -909
- package/xpath/xpath.js.map +1 -1
- package/xpathdebug.d.ts +2 -2
- package/xpathdebug.js +187 -187
- package/xpathdebug.js.map +1 -1
- package/xslt/index.d.ts +3 -3
- package/xslt/index.js +19 -19
- package/xslt/xslt-decimal-format-settings.d.ts +28 -28
- package/xslt/xslt-decimal-format-settings.js +2 -2
- package/xslt/xslt-options.d.ts +7 -7
- package/xslt/xslt-options.js +2 -2
- package/xslt/xslt-parameter.d.ts +5 -5
- package/xslt/xslt-parameter.js +2 -2
- package/xslt/xslt.d.ts +207 -190
- package/xslt/xslt.js +1135 -1079
- package/xslt/xslt.js.map +1 -1
package/dom/xml-functions.js
CHANGED
|
@@ -1,371 +1,370 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
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
|
-
case constants_1.
|
|
33
|
-
|
|
34
|
-
case constants_1.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
var
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
var
|
|
56
|
-
for (var i = 0; i <
|
|
57
|
-
ret += xmlValue(
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
case constants_1.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
//
|
|
89
|
-
var
|
|
90
|
-
if (
|
|
91
|
-
return
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
buffer.push(
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
138
|
-
else if (node.nodeType == constants_1.
|
|
139
|
-
buffer.push("
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
if (childNode
|
|
146
|
-
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
buffer.push(
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
*
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
//
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
*
|
|
237
|
-
* @param
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
*
|
|
284
|
-
* @param
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
*
|
|
297
|
-
*
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
*
|
|
310
|
-
*
|
|
311
|
-
*
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
.replace(
|
|
318
|
-
.replace(
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
* @
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
*
|
|
335
|
-
*
|
|
336
|
-
*
|
|
337
|
-
*
|
|
338
|
-
*
|
|
339
|
-
* @param
|
|
340
|
-
* @
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
//
|
|
345
|
-
//
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
/**
|
|
354
|
-
* Wrapper function to access the owner document uniformly for document
|
|
355
|
-
* and other nodes: for the document node, the owner document is the
|
|
356
|
-
* node itself, for all others it's the ownerDocument property.
|
|
357
|
-
*
|
|
358
|
-
* @param {XNode} node
|
|
359
|
-
* @return {XDocument}
|
|
360
|
-
*/
|
|
361
|
-
function xmlOwnerDocument(node) {
|
|
362
|
-
if (node === null || node === undefined) {
|
|
363
|
-
throw new Error('Node has no valid owner document.');
|
|
364
|
-
}
|
|
365
|
-
if (node.nodeType === constants_1.DOM_DOCUMENT_NODE) {
|
|
366
|
-
return node;
|
|
367
|
-
}
|
|
368
|
-
return xmlOwnerDocument(node.ownerDocument);
|
|
369
|
-
}
|
|
370
|
-
exports.xmlOwnerDocument = xmlOwnerDocument;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.xmlValue = xmlValue;
|
|
7
|
+
exports.xmlValue2 = xmlValue2;
|
|
8
|
+
exports.xmlText = xmlText;
|
|
9
|
+
exports.xmlTransformedText = xmlTransformedText;
|
|
10
|
+
exports.xmlEscapeText = xmlEscapeText;
|
|
11
|
+
exports.xmlGetAttribute = xmlGetAttribute;
|
|
12
|
+
exports.xmlOwnerDocument = xmlOwnerDocument;
|
|
13
|
+
var he_1 = __importDefault(require("he"));
|
|
14
|
+
var constants_1 = require("../constants");
|
|
15
|
+
var functions_1 = require("./functions");
|
|
16
|
+
/**
|
|
17
|
+
* Returns the text value of a node; for nodes without children this
|
|
18
|
+
* is the nodeValue, for nodes with children this is the concatenation
|
|
19
|
+
* of the value of all children. Browser-specific optimizations are used by
|
|
20
|
+
* default; they can be disabled by passing "true" in as the second parameter.
|
|
21
|
+
* @param node The Node (not exactly a `XNode` here).
|
|
22
|
+
* @param disallowBrowserSpecificOptimization A boolean, to avoid browser optimization.
|
|
23
|
+
* @returns The XML value as a string.
|
|
24
|
+
*/
|
|
25
|
+
function xmlValue(node, disallowBrowserSpecificOptimization) {
|
|
26
|
+
if (disallowBrowserSpecificOptimization === void 0) { disallowBrowserSpecificOptimization = false; }
|
|
27
|
+
if (!node) {
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
30
|
+
var ret = '';
|
|
31
|
+
switch (node.nodeType) {
|
|
32
|
+
case constants_1.DOM_DOCUMENT_TYPE_NODE:
|
|
33
|
+
return "<!DOCTYPE ".concat(node.nodeValue, ">");
|
|
34
|
+
case constants_1.DOM_TEXT_NODE:
|
|
35
|
+
case constants_1.DOM_CDATA_SECTION_NODE:
|
|
36
|
+
case constants_1.DOM_ATTRIBUTE_NODE:
|
|
37
|
+
return node.nodeValue;
|
|
38
|
+
case constants_1.DOM_ELEMENT_NODE:
|
|
39
|
+
case constants_1.DOM_DOCUMENT_NODE:
|
|
40
|
+
case constants_1.DOM_DOCUMENT_FRAGMENT_NODE:
|
|
41
|
+
if (!disallowBrowserSpecificOptimization) {
|
|
42
|
+
// Only returns something if node has either `innerText` or `textContent` (not an XNode).
|
|
43
|
+
// IE, Safari, Opera, and friends (`innerText`)
|
|
44
|
+
var innerText = node.innerText;
|
|
45
|
+
if (innerText != undefined) {
|
|
46
|
+
return innerText;
|
|
47
|
+
}
|
|
48
|
+
// Firefox (`textContent`)
|
|
49
|
+
var textContent = node.textContent;
|
|
50
|
+
if (textContent != undefined) {
|
|
51
|
+
return textContent;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (node.transformedChildNodes.length > 0) {
|
|
55
|
+
var transformedTextNodes = node.transformedChildNodes.filter(function (n) { return n.nodeType !== constants_1.DOM_ATTRIBUTE_NODE; });
|
|
56
|
+
for (var i = 0; i < transformedTextNodes.length; ++i) {
|
|
57
|
+
ret += xmlValue(transformedTextNodes[i]);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
var textNodes = node.childNodes.filter(function (n) { return n.nodeType !== constants_1.DOM_ATTRIBUTE_NODE; });
|
|
62
|
+
for (var i = 0; i < textNodes.length; ++i) {
|
|
63
|
+
ret += xmlValue(textNodes[i]);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return ret;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// TODO: Give a better name to this.
|
|
70
|
+
function xmlValue2(node, disallowBrowserSpecificOptimization) {
|
|
71
|
+
if (disallowBrowserSpecificOptimization === void 0) { disallowBrowserSpecificOptimization = false; }
|
|
72
|
+
if (!node) {
|
|
73
|
+
return '';
|
|
74
|
+
}
|
|
75
|
+
var returnedXmlString = '';
|
|
76
|
+
switch (node.nodeType) {
|
|
77
|
+
case constants_1.DOM_ATTRIBUTE_NODE:
|
|
78
|
+
case constants_1.DOM_TEXT_NODE:
|
|
79
|
+
returnedXmlString += node.nodeValue;
|
|
80
|
+
break;
|
|
81
|
+
case constants_1.DOM_CDATA_SECTION_NODE:
|
|
82
|
+
returnedXmlString += node.nodeValue;
|
|
83
|
+
break;
|
|
84
|
+
case constants_1.DOM_DOCUMENT_NODE:
|
|
85
|
+
case constants_1.DOM_DOCUMENT_FRAGMENT_NODE:
|
|
86
|
+
case constants_1.DOM_ELEMENT_NODE:
|
|
87
|
+
if (!disallowBrowserSpecificOptimization) {
|
|
88
|
+
// IE, Safari, Opera, and friends
|
|
89
|
+
var innerText = node.innerText;
|
|
90
|
+
if (innerText != undefined) {
|
|
91
|
+
return innerText;
|
|
92
|
+
}
|
|
93
|
+
// Firefox
|
|
94
|
+
var textContent = node.textContent;
|
|
95
|
+
if (textContent != undefined) {
|
|
96
|
+
return textContent;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
var len = node.transformedChildNodes.length;
|
|
100
|
+
for (var i = 0; i < len; ++i) {
|
|
101
|
+
returnedXmlString += xmlValue(node.transformedChildNodes[i]);
|
|
102
|
+
}
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
return returnedXmlString;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Returns the representation of a node as XML text.
|
|
109
|
+
* In general it is not used by XSLT, that uses `xmlTransformedText` instead.
|
|
110
|
+
* @param {XNode} node The starting node.
|
|
111
|
+
* @param {XmlOutputOptions} options XML output options.
|
|
112
|
+
* @returns The XML string.
|
|
113
|
+
* @see xmlTransformedText
|
|
114
|
+
*/
|
|
115
|
+
function xmlText(node, options) {
|
|
116
|
+
if (options === void 0) { options = {
|
|
117
|
+
cData: true,
|
|
118
|
+
escape: true,
|
|
119
|
+
selfClosingTags: true,
|
|
120
|
+
outputMethod: 'xml'
|
|
121
|
+
}; }
|
|
122
|
+
var buffer = [];
|
|
123
|
+
xmlTextRecursive(node, buffer, options);
|
|
124
|
+
return buffer.join('');
|
|
125
|
+
}
|
|
126
|
+
function xmlTextRecursive(node, buffer, options) {
|
|
127
|
+
if (node.nodeType == constants_1.DOM_TEXT_NODE) {
|
|
128
|
+
buffer.push(xmlEscapeText(node.nodeValue));
|
|
129
|
+
}
|
|
130
|
+
else if (node.nodeType == constants_1.DOM_CDATA_SECTION_NODE) {
|
|
131
|
+
if (options.cData) {
|
|
132
|
+
buffer.push(node.nodeValue);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
buffer.push("<![CDATA[".concat(node.nodeValue, "]]>"));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else if (node.nodeType == constants_1.DOM_COMMENT_NODE) {
|
|
139
|
+
buffer.push("<!--".concat(node.nodeValue, "-->"));
|
|
140
|
+
}
|
|
141
|
+
else if (node.nodeType == constants_1.DOM_ELEMENT_NODE) {
|
|
142
|
+
buffer.push("<".concat(xmlFullNodeName(node)));
|
|
143
|
+
for (var i = 0; i < node.childNodes.length; ++i) {
|
|
144
|
+
var childNode = node.childNodes[i];
|
|
145
|
+
if (!childNode || childNode.nodeType !== constants_1.DOM_ATTRIBUTE_NODE) {
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
if (childNode.nodeName && childNode.nodeValue) {
|
|
149
|
+
buffer.push(" ".concat(xmlFullNodeName(childNode), "=\"").concat(xmlEscapeAttr(childNode.nodeValue), "\""));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (node.childNodes.length === 0) {
|
|
153
|
+
if (options.selfClosingTags || (options.outputMethod === 'html' && ['hr', 'link'].includes(node.nodeName))) {
|
|
154
|
+
buffer.push('/>');
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
buffer.push("></".concat(xmlFullNodeName(node), ">"));
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
buffer.push('>');
|
|
162
|
+
for (var i = 0; i < node.childNodes.length; ++i) {
|
|
163
|
+
xmlTextRecursive(node.childNodes[i], buffer, options);
|
|
164
|
+
}
|
|
165
|
+
buffer.push("</".concat(xmlFullNodeName(node), ">"));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else if (node.nodeType == constants_1.DOM_DOCUMENT_NODE || node.nodeType == constants_1.DOM_DOCUMENT_FRAGMENT_NODE) {
|
|
169
|
+
for (var i = 0; i < node.childNodes.length; ++i) {
|
|
170
|
+
xmlTextRecursive(node.childNodes[i], buffer, options);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Returns the representation of a node as XML text.
|
|
176
|
+
* @param {XNode} node The starting node.
|
|
177
|
+
* @param {XmlOutputOptions} options XML output options.
|
|
178
|
+
* @returns The XML string.
|
|
179
|
+
*/
|
|
180
|
+
function xmlTransformedText(node, options) {
|
|
181
|
+
if (options === void 0) { options = {
|
|
182
|
+
cData: true,
|
|
183
|
+
escape: true,
|
|
184
|
+
selfClosingTags: true,
|
|
185
|
+
outputMethod: 'xml'
|
|
186
|
+
}; }
|
|
187
|
+
var buffer = [];
|
|
188
|
+
xmlTransformedTextRecursive(node, buffer, options);
|
|
189
|
+
return buffer.join('');
|
|
190
|
+
}
|
|
191
|
+
function xmlTransformedTextRecursive(node, buffer, options) {
|
|
192
|
+
if (node.visited)
|
|
193
|
+
return;
|
|
194
|
+
var nodeType = node.transformedNodeType || node.nodeType;
|
|
195
|
+
var nodeValue = node.transformedNodeValue || node.nodeValue;
|
|
196
|
+
if (nodeType === constants_1.DOM_TEXT_NODE) {
|
|
197
|
+
if (node.transformedNodeValue && node.transformedNodeValue.trim() !== '') {
|
|
198
|
+
var finalText = node.escape && options.escape ?
|
|
199
|
+
xmlEscapeText(node.transformedNodeValue) :
|
|
200
|
+
node.transformedNodeValue;
|
|
201
|
+
buffer.push(finalText);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
else if (nodeType === constants_1.DOM_CDATA_SECTION_NODE) {
|
|
205
|
+
if (options.cData) {
|
|
206
|
+
buffer.push(xmlEscapeText(nodeValue));
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
buffer.push("<![CDATA[".concat(nodeValue, "]]>"));
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
else if (nodeType == constants_1.DOM_COMMENT_NODE) {
|
|
213
|
+
buffer.push("<!-- ".concat(nodeValue, " -->"));
|
|
214
|
+
}
|
|
215
|
+
else if (nodeType == constants_1.DOM_ELEMENT_NODE) {
|
|
216
|
+
// If node didn't have a transformed name, but its children
|
|
217
|
+
// had transformations, children should be present at output.
|
|
218
|
+
// This is called here "muted logic".
|
|
219
|
+
if (node.transformedNodeName !== null && node.transformedNodeName !== undefined) {
|
|
220
|
+
xmlElementLogicTrivial(node, buffer, options);
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
xmlElementLogicMuted(node, buffer, options);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
else if (nodeType === constants_1.DOM_DOCUMENT_NODE || nodeType === constants_1.DOM_DOCUMENT_FRAGMENT_NODE) {
|
|
227
|
+
var childNodes = node.transformedChildNodes.concat(node.childNodes);
|
|
228
|
+
childNodes.sort(function (a, b) { return a.siblingPosition - b.siblingPosition; });
|
|
229
|
+
for (var i = 0; i < childNodes.length; ++i) {
|
|
230
|
+
xmlTransformedTextRecursive(childNodes[i], buffer, options);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
node.visited = true;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* XML element output, trivial logic.
|
|
237
|
+
* @param node The XML node.
|
|
238
|
+
* @param buffer The XML buffer.
|
|
239
|
+
* @param cdata If using CDATA configuration.
|
|
240
|
+
*/
|
|
241
|
+
function xmlElementLogicTrivial(node, buffer, options) {
|
|
242
|
+
buffer.push("<".concat(xmlFullNodeName(node)));
|
|
243
|
+
var attributes = node.transformedChildNodes.filter(function (n) { return n.nodeType === constants_1.DOM_ATTRIBUTE_NODE; });
|
|
244
|
+
if (attributes.length === 0) {
|
|
245
|
+
attributes = node.childNodes.filter(function (n) { return n.nodeType === constants_1.DOM_ATTRIBUTE_NODE; });
|
|
246
|
+
}
|
|
247
|
+
for (var i = 0; i < attributes.length; ++i) {
|
|
248
|
+
var attribute = attributes[i];
|
|
249
|
+
if (!attribute) {
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
252
|
+
if (attribute.transformedNodeName && attribute.transformedNodeValue) {
|
|
253
|
+
buffer.push(" ".concat(xmlFullNodeName(attribute), "=\"").concat(xmlEscapeAttr(attribute.transformedNodeValue), "\""));
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
var childNodes = node.transformedChildNodes.filter(function (n) { return n.nodeType !== constants_1.DOM_ATTRIBUTE_NODE; });
|
|
257
|
+
if (childNodes.length === 0) {
|
|
258
|
+
childNodes = node.childNodes.filter(function (n) { return n.nodeType !== constants_1.DOM_ATTRIBUTE_NODE; });
|
|
259
|
+
}
|
|
260
|
+
childNodes = childNodes.sort(function (a, b) { return a.siblingPosition - b.siblingPosition; });
|
|
261
|
+
if (childNodes.length === 0) {
|
|
262
|
+
if (options.outputMethod === 'html' && ['hr', 'link', 'meta'].includes(node.nodeName)) {
|
|
263
|
+
buffer.push('>');
|
|
264
|
+
}
|
|
265
|
+
else if (options.selfClosingTags) {
|
|
266
|
+
buffer.push('/>');
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
buffer.push("></".concat(xmlFullNodeName(node), ">"));
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
buffer.push('>');
|
|
274
|
+
for (var i = 0; i < childNodes.length; ++i) {
|
|
275
|
+
xmlTransformedTextRecursive(childNodes[i], buffer, options);
|
|
276
|
+
}
|
|
277
|
+
buffer.push("</".concat(xmlFullNodeName(node), ">"));
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* XML element output, muted logic.
|
|
282
|
+
* In other words, this element should not be printed, but its
|
|
283
|
+
* children can be printed if they have transformed values.
|
|
284
|
+
* @param node The XML node.
|
|
285
|
+
* @param buffer The XML buffer.
|
|
286
|
+
* @param cdata If using CDATA configuration.
|
|
287
|
+
*/
|
|
288
|
+
function xmlElementLogicMuted(node, buffer, options) {
|
|
289
|
+
var childNodes = node.transformedChildNodes.length > 0 ? node.transformedChildNodes : node.childNodes;
|
|
290
|
+
childNodes = childNodes.sort(function (a, b) { return a.siblingPosition - b.siblingPosition; });
|
|
291
|
+
for (var i = 0; i < childNodes.length; ++i) {
|
|
292
|
+
xmlTransformedTextRecursive(childNodes[i], buffer, options);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Gets the full node name.
|
|
297
|
+
* When namespace is set, the node name is `namespace:node`.
|
|
298
|
+
* @param node The node.
|
|
299
|
+
* @returns The full node name as a string.
|
|
300
|
+
*/
|
|
301
|
+
function xmlFullNodeName(node) {
|
|
302
|
+
var nodeName = node.transformedNodeName || node.nodeName;
|
|
303
|
+
if (node.transformedPrefix && nodeName.indexOf("".concat(node.transformedPrefix, ":")) != 0) {
|
|
304
|
+
return "".concat(node.transformedPrefix, ":").concat(nodeName);
|
|
305
|
+
}
|
|
306
|
+
return nodeName;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Escape XML special markup chracters: tag delimiter < > and entity
|
|
310
|
+
* reference start delimiter &. The escaped string can be used in XML
|
|
311
|
+
* text portions (i.e. between tags).
|
|
312
|
+
* @param s The string to be escaped.
|
|
313
|
+
* @returns The escaped string.
|
|
314
|
+
*/
|
|
315
|
+
function xmlEscapeText(s) {
|
|
316
|
+
return "".concat(s)
|
|
317
|
+
.replace(/&/g, '&')
|
|
318
|
+
.replace(/&amp;/g, '&')
|
|
319
|
+
.replace(/</g, '<')
|
|
320
|
+
.replace(/>/g, '>');
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Escape XML special markup characters: tag delimiter < > entity
|
|
324
|
+
* reference start delimiter & and quotes ". The escaped string can be
|
|
325
|
+
* used in double quoted XML attribute value portions (i.e. in
|
|
326
|
+
* attributes within start tags).
|
|
327
|
+
* @param s The string to be escaped.
|
|
328
|
+
* @returns The escaped string.
|
|
329
|
+
*/
|
|
330
|
+
function xmlEscapeAttr(s) {
|
|
331
|
+
return xmlEscapeText(s).replace(/"/g, '"');
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Wrapper function to access attribute values of template element
|
|
335
|
+
* nodes. Currently this calls he.decode because in some DOM
|
|
336
|
+
* implementations the return value of node.getAttributeValue()
|
|
337
|
+
* contains unresolved XML entities, although the DOM spec requires
|
|
338
|
+
* that entity references are resolved by the DOM.
|
|
339
|
+
* @param node TODO
|
|
340
|
+
* @param name TODO
|
|
341
|
+
* @returns TODO
|
|
342
|
+
*/
|
|
343
|
+
function xmlGetAttribute(node, name) {
|
|
344
|
+
// TODO(mesch): This should not be necessary if the DOM is working
|
|
345
|
+
// correctly. The DOM is responsible for resolving entities, not the
|
|
346
|
+
// application.
|
|
347
|
+
var value = (0, functions_1.domGetAttributeValue)(node, name);
|
|
348
|
+
if (value) {
|
|
349
|
+
return he_1.default.decode(value);
|
|
350
|
+
}
|
|
351
|
+
return value;
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Wrapper function to access the owner document uniformly for document
|
|
355
|
+
* and other nodes: for the document node, the owner document is the
|
|
356
|
+
* node itself, for all others it's the ownerDocument property.
|
|
357
|
+
*
|
|
358
|
+
* @param {XNode} node
|
|
359
|
+
* @return {XDocument}
|
|
360
|
+
*/
|
|
361
|
+
function xmlOwnerDocument(node) {
|
|
362
|
+
if (node === null || node === undefined) {
|
|
363
|
+
throw new Error('Node has no valid owner document.');
|
|
364
|
+
}
|
|
365
|
+
if (node.nodeType === constants_1.DOM_DOCUMENT_NODE) {
|
|
366
|
+
return node;
|
|
367
|
+
}
|
|
368
|
+
return xmlOwnerDocument(node.ownerDocument);
|
|
369
|
+
}
|
|
371
370
|
//# sourceMappingURL=xml-functions.js.map
|