xslt-processor 1.2.7 → 2.0.0

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.
Files changed (44) hide show
  1. package/README.md +37 -9
  2. package/dom/functions.d.ts +0 -7
  3. package/dom/functions.js +2 -164
  4. package/dom/functions.js.map +1 -1
  5. package/dom/index.d.ts +1 -0
  6. package/dom/index.js +1 -0
  7. package/dom/index.js.map +1 -1
  8. package/dom/util.d.ts +0 -4
  9. package/dom/util.js +1 -27
  10. package/dom/util.js.map +1 -1
  11. package/dom/xml-functions.d.ts +13 -2
  12. package/dom/xml-functions.js +59 -40
  13. package/dom/xml-functions.js.map +1 -1
  14. package/dom/xml-output-options.d.ts +1 -0
  15. package/dom/xml-parser.d.ts +47 -0
  16. package/dom/xml-parser.js +301 -0
  17. package/dom/xml-parser.js.map +1 -0
  18. package/index.d.ts +1 -1
  19. package/index.js +2 -2
  20. package/index.js.map +1 -1
  21. package/package.json +1 -1
  22. package/umd/dom/functions.d.ts +0 -7
  23. package/umd/dom/index.d.ts +1 -0
  24. package/umd/dom/util.d.ts +0 -4
  25. package/umd/dom/xml-functions.d.ts +13 -2
  26. package/umd/dom/xml-output-options.d.ts +1 -0
  27. package/umd/dom/xml-parser.d.ts +47 -0
  28. package/umd/index.d.ts +1 -1
  29. package/umd/xpath/values/node-set-value.d.ts +1 -1
  30. package/umd/xslt/xslt.d.ts +1 -1
  31. package/umd/xslt-processor.js +2 -2
  32. package/umd/xslt-processor.js.map +1 -1
  33. package/xpath/expressions/binary-expr.js +2 -2
  34. package/xpath/expressions/binary-expr.js.map +1 -1
  35. package/xpath/functions/standard.js +1 -1
  36. package/xpath/functions/standard.js.map +1 -1
  37. package/xpath/match-resolver.js +2 -2
  38. package/xpath/match-resolver.js.map +1 -1
  39. package/xpath/values/node-set-value.d.ts +1 -1
  40. package/xpath/values/node-set-value.js +1 -1
  41. package/xpath/values/node-set-value.js.map +1 -1
  42. package/xslt/xslt.d.ts +1 -1
  43. package/xslt/xslt.js +3 -2
  44. package/xslt/xslt.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"xml-functions.js","sourceRoot":"","sources":["../../src/dom/xml-functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xml-functions.js","sourceRoot":"","sources":["../../src/dom/xml-functions.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ export type XmlOutputOptions = {
2
2
  cData: boolean;
3
3
  escape: boolean;
4
4
  selfClosingTags: boolean;
5
+ outputMethod: 'xml' | 'html' | 'text' | 'name';
5
6
  };
@@ -0,0 +1,47 @@
1
+ import { XDocument } from './xdocument';
2
+ /**
3
+ * Original author: Steffen Meschkat <mesch@google.com> (the `xmlParse` function,
4
+ * now `xmlStrictParse`).
5
+ *
6
+ * An XML parse and a minimal DOM implementation that just supports
7
+ * the subset of the W3C DOM that is used in the XSLT implementation.
8
+ */
9
+ export declare class XmlParser {
10
+ regexEmpty: RegExp;
11
+ XML10_TAGNAME_REGEXP: RegExp;
12
+ XML10_ATTRIBUTE_REGEXP: RegExp;
13
+ XML11_TAGNAME_REGEXP: RegExp;
14
+ XML11_ATTRIBUTE_REGEXP: RegExp;
15
+ lenientHtmlTags: string[];
16
+ /**
17
+ * The entry point for this parser.
18
+ * It verifies whether the document seems to be HTML.
19
+ * HTML is a special case if XML and it should be parsed differently.
20
+ * @param xmlOrHtml The XML or HTML content to be parsed.
21
+ * @returns A DOM document.
22
+ */
23
+ xmlParse(xmlOrHtml: string): XDocument;
24
+ /**
25
+ * Given an XNode, returns an object mapping prefixes to their corresponding namespaces in its scope.
26
+ * Default namespace is treated as if its prefix were the empty string.
27
+ * @param node The Node.
28
+ * @returns An object with prefixes and namespace URLs.
29
+ */
30
+ private namespaceMapAt;
31
+ /**
32
+ * HTML needs to be parsed differently because it's a special case of XML.
33
+ * Sources:
34
+ *
35
+ * - https://blog.teamtreehouse.com/to-close-or-not-to-close-tags-in-html5
36
+ * @param htmlText The HTML text
37
+ * @returns A DOM document.
38
+ */
39
+ private htmlParse;
40
+ /**
41
+ * Parses the given XML string with our custom, JavaScript XML parser.
42
+ * @param xml The XML String.
43
+ * @returns A XDocument.
44
+ * @author Steffen Meschkat <mesch@google.com>
45
+ */
46
+ private xmlStrictParse;
47
+ }
@@ -0,0 +1,301 @@
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.XmlParser = void 0;
7
+ var he_1 = __importDefault(require("he"));
8
+ var functions_1 = require("./functions");
9
+ var xdocument_1 = require("./xdocument");
10
+ var xmltoken_1 = require("./xmltoken");
11
+ /**
12
+ * Original author: Steffen Meschkat <mesch@google.com> (the `xmlParse` function,
13
+ * now `xmlStrictParse`).
14
+ *
15
+ * An XML parse and a minimal DOM implementation that just supports
16
+ * the subset of the W3C DOM that is used in the XSLT implementation.
17
+ */
18
+ var XmlParser = /** @class */ (function () {
19
+ function XmlParser() {
20
+ this.regexEmpty = /\/$/;
21
+ this.XML10_TAGNAME_REGEXP = new RegExp("^(".concat(xmltoken_1.XML10_NAME, ")"));
22
+ this.XML10_ATTRIBUTE_REGEXP = new RegExp(xmltoken_1.XML10_ATTRIBUTE, 'g');
23
+ this.XML11_TAGNAME_REGEXP = new RegExp("^(".concat(xmltoken_1.XML11_NAME, ")"));
24
+ this.XML11_ATTRIBUTE_REGEXP = new RegExp(xmltoken_1.XML11_ATTRIBUTE, 'g');
25
+ this.lenientHtmlTags = ['hr', 'link', 'meta'];
26
+ }
27
+ /**
28
+ * The entry point for this parser.
29
+ * It verifies whether the document seems to be HTML.
30
+ * HTML is a special case if XML and it should be parsed differently.
31
+ * @param xmlOrHtml The XML or HTML content to be parsed.
32
+ * @returns A DOM document.
33
+ */
34
+ XmlParser.prototype.xmlParse = function (xmlOrHtml) {
35
+ if (xmlOrHtml.toUpperCase().startsWith('<!DOCTYPE HTML')) {
36
+ return this.htmlParse(xmlOrHtml);
37
+ }
38
+ return this.xmlStrictParse(xmlOrHtml);
39
+ };
40
+ /**
41
+ * Given an XNode, returns an object mapping prefixes to their corresponding namespaces in its scope.
42
+ * Default namespace is treated as if its prefix were the empty string.
43
+ * @param node The Node.
44
+ * @returns An object with prefixes and namespace URLs.
45
+ */
46
+ XmlParser.prototype.namespaceMapAt = function (node) {
47
+ var map = {
48
+ // reserved namespaces: https://www.w3.org/TR/REC-xml-names/#xmlReserved
49
+ xmlns: 'http://www.w3.org/2000/xmlns/',
50
+ xml: 'http://www.w3.org/XML/1998/namespace'
51
+ };
52
+ var n = node;
53
+ while (n !== null) {
54
+ for (var i = 0; i < n.attributes.length; i++) {
55
+ if (n.attributes[i].nodeName.startsWith('xmlns:')) {
56
+ var prefix = n.attributes[i].nodeName.split(':')[1];
57
+ if (!(prefix in map))
58
+ map[prefix] = n.attributes[i].nodeValue;
59
+ }
60
+ else if (n.attributes[i].nodeName == 'xmlns') {
61
+ if (!('' in map))
62
+ map[''] = n.attributes[i].nodeValue || null;
63
+ }
64
+ }
65
+ n = n.parentNode;
66
+ }
67
+ return map;
68
+ };
69
+ /**
70
+ * HTML needs to be parsed differently because it's a special case of XML.
71
+ * Sources:
72
+ *
73
+ * - https://blog.teamtreehouse.com/to-close-or-not-to-close-tags-in-html5
74
+ * @param htmlText The HTML text
75
+ * @returns A DOM document.
76
+ */
77
+ XmlParser.prototype.htmlParse = function (htmlText) {
78
+ var xmlDocument = new xdocument_1.XDocument();
79
+ var root = xmlDocument;
80
+ var stack = [];
81
+ var parent = root;
82
+ stack.push(parent);
83
+ var tag = false, quotes = false, doublequotes = false, start = 0;
84
+ for (var i = 0; i < htmlText.length; ++i) {
85
+ var char = htmlText.charAt(i);
86
+ if (tag) {
87
+ if (!doublequotes && char === "'") {
88
+ quotes = !quotes;
89
+ }
90
+ else if (!quotes && char === '"') {
91
+ doublequotes = !doublequotes;
92
+ }
93
+ else if (!quotes && !doublequotes && char === '>') {
94
+ var text = htmlText.slice(start, i);
95
+ if (text.charAt(0) === '/') { // {
96
+ stack.pop();
97
+ parent = stack[stack.length - 1];
98
+ }
99
+ else if (text.charAt(0) === '!') {
100
+ // Ignore comments
101
+ // console.log(`Ignored ${text}`);
102
+ }
103
+ else {
104
+ var empty = text.match(this.regexEmpty);
105
+ var tagName = this.XML10_TAGNAME_REGEXP.exec(text)[1];
106
+ var node = (0, functions_1.domCreateElement)(xmlDocument, tagName);
107
+ var attribute = void 0;
108
+ while ((attribute = this.XML10_ATTRIBUTE_REGEXP.exec(text))) {
109
+ var val = he_1.default.decode(attribute[5] || attribute[7] || '');
110
+ (0, functions_1.domSetAttribute)(node, attribute[1], val);
111
+ }
112
+ node.siblingPosition = parent.childNodes.length;
113
+ (0, functions_1.domAppendChild)(parent, node);
114
+ // The fundamental difference between this parse function
115
+ // and the strict XML parse is here:
116
+ // HTML is lenient with certain tags, that don't need to be closed.
117
+ if (!empty && !this.lenientHtmlTags.includes(tagName)) {
118
+ parent = node;
119
+ stack.push(node);
120
+ }
121
+ }
122
+ start = i + 1;
123
+ tag = false;
124
+ quotes = false;
125
+ doublequotes = false;
126
+ }
127
+ }
128
+ else {
129
+ if (char === '<') {
130
+ var text = htmlText.slice(start, i);
131
+ if (text && parent !== root) {
132
+ (0, functions_1.domAppendChild)(parent, (0, functions_1.domCreateTextNode)(xmlDocument, text));
133
+ }
134
+ if (htmlText.slice(i + 1, i + 4) === '!--') {
135
+ var endTagIndex = htmlText.slice(i + 4).indexOf('-->');
136
+ if (endTagIndex) {
137
+ var node = (0, functions_1.domCreateComment)(xmlDocument, htmlText.slice(i + 4, i + endTagIndex + 4));
138
+ (0, functions_1.domAppendChild)(parent, node);
139
+ i += endTagIndex + 6;
140
+ }
141
+ }
142
+ else if (htmlText.slice(i + 1, i + 9) === '!DOCTYPE') {
143
+ var endTagIndex = htmlText.slice(i + 9).indexOf('>');
144
+ if (endTagIndex) {
145
+ var dtdValue = htmlText.slice(i + 9, i + endTagIndex + 9).trimStart();
146
+ // TODO: Not sure if this is a good solution.
147
+ // Trying to implement this: https://github.com/DesignLiquido/xslt-processor/issues/30
148
+ var node = (0, functions_1.domCreateDTDSection)(xmlDocument, dtdValue);
149
+ (0, functions_1.domAppendChild)(parent, node);
150
+ i += endTagIndex + dtdValue.length + 5;
151
+ }
152
+ }
153
+ else {
154
+ tag = true;
155
+ }
156
+ start = i + 1;
157
+ }
158
+ }
159
+ }
160
+ return xmlDocument;
161
+ };
162
+ /**
163
+ * Parses the given XML string with our custom, JavaScript XML parser.
164
+ * @param xml The XML String.
165
+ * @returns A XDocument.
166
+ * @author Steffen Meschkat <mesch@google.com>
167
+ */
168
+ XmlParser.prototype.xmlStrictParse = function (xml) {
169
+ var regexTagname;
170
+ var regexAttribute;
171
+ if (xml.match(/^<\?xml/)) {
172
+ // When an XML document begins with an XML declaration
173
+ // VersionInfo must appear.
174
+ if (xml.search(new RegExp(xmltoken_1.XML10_VERSION_INFO)) === 5) {
175
+ regexTagname = this.XML10_TAGNAME_REGEXP;
176
+ regexAttribute = this.XML10_ATTRIBUTE_REGEXP;
177
+ }
178
+ else if (xml.search(new RegExp(xmltoken_1.XML11_VERSION_INFO)) === 5) {
179
+ regexTagname = this.XML11_TAGNAME_REGEXP;
180
+ regexAttribute = this.XML11_ATTRIBUTE_REGEXP;
181
+ }
182
+ else {
183
+ throw new Error('XML VersionInfo has an unknown version number.');
184
+ }
185
+ }
186
+ else {
187
+ // When an XML declaration is missing it's an XML 1.0 document.
188
+ regexTagname = this.XML10_TAGNAME_REGEXP;
189
+ regexAttribute = this.XML10_ATTRIBUTE_REGEXP;
190
+ }
191
+ var xmlDocument = new xdocument_1.XDocument();
192
+ var root = xmlDocument;
193
+ var stack = [];
194
+ var parent = root;
195
+ stack.push(parent);
196
+ var tag = false, quotes = false, doublequotes = false, start = 0;
197
+ for (var i = 0; i < xml.length; ++i) {
198
+ var char = xml.charAt(i);
199
+ if (tag && !doublequotes && char === "'") {
200
+ quotes = !quotes;
201
+ }
202
+ else if (tag && !quotes && char === '"') {
203
+ doublequotes = !doublequotes;
204
+ }
205
+ else if (tag && char === '>' && !quotes && !doublequotes) {
206
+ var text = xml.slice(start, i);
207
+ if (text.charAt(0) === '/') {
208
+ stack.pop();
209
+ parent = stack[stack.length - 1];
210
+ }
211
+ else if (text.charAt(0) === '?') {
212
+ // Ignore XML declaration and processing instructions
213
+ }
214
+ else if (text.charAt(0) === '!') {
215
+ // Ignore comments
216
+ // console.log(`Ignored ${text}`);
217
+ }
218
+ else {
219
+ var empty = text.match(this.regexEmpty);
220
+ var tagname = regexTagname.exec(text)[1];
221
+ var node = (0, functions_1.domCreateElement)(xmlDocument, tagname);
222
+ var attribute = void 0;
223
+ while ((attribute = regexAttribute.exec(text))) {
224
+ var val = he_1.default.decode(attribute[5] || attribute[7] || '');
225
+ (0, functions_1.domSetAttribute)(node, attribute[1], val);
226
+ }
227
+ node.siblingPosition = parent.childNodes.length;
228
+ (0, functions_1.domAppendChild)(parent, node);
229
+ if (!empty) {
230
+ parent = node;
231
+ stack.push(node);
232
+ }
233
+ var namespaceMap = this.namespaceMapAt(node);
234
+ if (node.prefix !== null) {
235
+ if (node.prefix in namespaceMap)
236
+ node.namespaceUri = namespaceMap[node.prefix];
237
+ // else, prefix is undefined. do anything?
238
+ }
239
+ else {
240
+ if ('' in namespaceMap)
241
+ node.namespaceUri = namespaceMap[''];
242
+ }
243
+ for (var i_1 = 0; i_1 < node.attributes.length; ++i_1) {
244
+ if (node.attributes[i_1].prefix !== null) {
245
+ if (node.attributes[i_1].prefix in namespaceMap) {
246
+ node.attributes[i_1].namespaceUri = namespaceMap[node.attributes[i_1].prefix];
247
+ }
248
+ // else, prefix undefined.
249
+ }
250
+ // elements with no prefix always have no namespace, so do nothing here.
251
+ }
252
+ }
253
+ start = i + 1;
254
+ tag = false;
255
+ quotes = false;
256
+ doublequotes = false;
257
+ }
258
+ else if (!tag && char === '<') {
259
+ var text = xml.slice(start, i);
260
+ if (text && parent !== root) {
261
+ (0, functions_1.domAppendChild)(parent, (0, functions_1.domCreateTextNode)(xmlDocument, text));
262
+ }
263
+ if (xml.slice(i + 1, i + 4) === '!--') {
264
+ var endTagIndex = xml.slice(i + 4).indexOf('-->');
265
+ if (endTagIndex) {
266
+ var node = (0, functions_1.domCreateComment)(xmlDocument, xml.slice(i + 4, i + endTagIndex + 4));
267
+ (0, functions_1.domAppendChild)(parent, node);
268
+ i += endTagIndex + 6;
269
+ }
270
+ }
271
+ else if (xml.slice(i + 1, i + 9) === '![CDATA[') {
272
+ var endTagIndex = xml.slice(i + 9).indexOf(']]>');
273
+ if (endTagIndex) {
274
+ var node = (0, functions_1.domCreateCDATASection)(xmlDocument, xml.slice(i + 9, i + endTagIndex + 9));
275
+ (0, functions_1.domAppendChild)(parent, node);
276
+ i += endTagIndex + 11;
277
+ }
278
+ }
279
+ else if (xml.slice(i + 1, i + 9) === '!DOCTYPE') { // "!DOCTYPE" can be used in a XSLT template.
280
+ var endTagIndex = xml.slice(i + 9).indexOf('>');
281
+ if (endTagIndex) {
282
+ var dtdValue = xml.slice(i + 9, i + endTagIndex + 9).trimStart();
283
+ // TODO: Not sure if this is a good solution.
284
+ // Trying to implement this: https://github.com/DesignLiquido/xslt-processor/issues/30
285
+ var node = (0, functions_1.domCreateDTDSection)(xmlDocument, dtdValue);
286
+ (0, functions_1.domAppendChild)(parent, node);
287
+ i += endTagIndex + dtdValue.length + 5;
288
+ }
289
+ }
290
+ else {
291
+ tag = true;
292
+ }
293
+ start = i + 1;
294
+ }
295
+ }
296
+ return root;
297
+ };
298
+ return XmlParser;
299
+ }());
300
+ exports.XmlParser = XmlParser;
301
+ //# sourceMappingURL=xml-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml-parser.js","sourceRoot":"","sources":["../../src/dom/xml-parser.ts"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { XPath } from './xpath';
2
2
  export { Xslt, XsltOptions } from './xslt';
3
- export { xmlParse, xmlEscapeText } from './dom';
3
+ export { XmlParser, xmlEscapeText } from './dom';
4
4
  export { ExprContext } from './xpath';
package/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExprContext = exports.xmlEscapeText = exports.xmlParse = exports.Xslt = exports.XPath = void 0;
3
+ exports.ExprContext = exports.xmlEscapeText = exports.XmlParser = exports.Xslt = exports.XPath = void 0;
4
4
  var xpath_1 = require("./xpath");
5
5
  Object.defineProperty(exports, "XPath", { enumerable: true, get: function () { return xpath_1.XPath; } });
6
6
  var xslt_1 = require("./xslt");
7
7
  Object.defineProperty(exports, "Xslt", { enumerable: true, get: function () { return xslt_1.Xslt; } });
8
8
  var dom_1 = require("./dom");
9
- Object.defineProperty(exports, "xmlParse", { enumerable: true, get: function () { return dom_1.xmlParse; } });
9
+ Object.defineProperty(exports, "XmlParser", { enumerable: true, get: function () { return dom_1.XmlParser; } });
10
10
  Object.defineProperty(exports, "xmlEscapeText", { enumerable: true, get: function () { return dom_1.xmlEscapeText; } });
11
11
  var xpath_2 = require("./xpath");
12
12
  Object.defineProperty(exports, "ExprContext", { enumerable: true, get: function () { return xpath_2.ExprContext; } });
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,+BAA2C;AAAlC,4FAAA,IAAI,OAAA;AACb,6BAAgD;AAAvC,+FAAA,QAAQ,OAAA;AAAE,oGAAA,aAAa,OAAA;AAChC,iCAAsC;AAA7B,oGAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,+BAA2C;AAAlC,4FAAA,IAAI,OAAA;AACb,6BAAiD;AAAxC,gGAAA,SAAS,OAAA;AAAE,oGAAA,aAAa,OAAA;AACjC,iCAAsC;AAA7B,oGAAA,WAAW,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xslt-processor",
3
- "version": "1.2.7",
3
+ "version": "2.0.0",
4
4
  "description": "A JavaScript XSLT Processor",
5
5
  "main": "index.js",
6
6
  "module": "index.js",
@@ -12,10 +12,3 @@ export declare function domCreateCDATASection(doc: XDocument, data: any): XNode;
12
12
  export declare function domCreateComment(doc: any, text: any): any;
13
13
  export declare function domCreateDocumentFragment(doc: XDocument): XNode;
14
14
  export declare function domCreateDTDSection(doc: XDocument, data: any): XNode;
15
- /**
16
- * Parses the given XML string with our custom, JavaScript XML parser
17
- * @param xml The XML String.
18
- * @returns A XDocument.
19
- * @author Steffen Meschkat <mesch@google.com>
20
- */
21
- export declare function xmlParse(xml: string): XDocument;
@@ -2,4 +2,5 @@ export * from './functions';
2
2
  export * from './xdocument';
3
3
  export * from './xml-functions';
4
4
  export * from './xml-output-options';
5
+ export * from './xml-parser';
5
6
  export * from './xnode';
package/umd/dom/util.d.ts CHANGED
@@ -5,7 +5,3 @@ export declare function mapExpr(array: any, func: any): any[];
5
5
  * @param array The array to be reversed.
6
6
  */
7
7
  export declare function reverseInPlace(array: any[]): void;
8
- export declare function namespaceMapAt(node: any): {
9
- xmlns: string;
10
- xml: string;
11
- };
@@ -1,13 +1,24 @@
1
1
  import { XNode } from './xnode';
2
2
  import { XDocument } from './xdocument';
3
3
  import { XmlOutputOptions } from './xml-output-options';
4
- export declare function xmlValue(node: any, disallowBrowserSpecificOptimization?: boolean): any;
4
+ /**
5
+ * Returns the text value of a node; for nodes without children this
6
+ * is the nodeValue, for nodes with children this is the concatenation
7
+ * of the value of all children. Browser-specific optimizations are used by
8
+ * default; they can be disabled by passing "true" in as the second parameter.
9
+ * @param node The Node (not exactly a `XNode` here).
10
+ * @param disallowBrowserSpecificOptimization A boolean, to avoid browser optimization.
11
+ * @returns The XML value as a string.
12
+ */
13
+ export declare function xmlValue(node: any, disallowBrowserSpecificOptimization?: boolean): string;
5
14
  export declare function xmlValue2(node: any, disallowBrowserSpecificOptimization?: boolean): any;
6
15
  /**
7
16
  * Returns the representation of a node as XML text.
17
+ * In general it is not used by XSLT, that uses `xmlTransformedText` instead.
8
18
  * @param {XNode} node The starting node.
9
19
  * @param {XmlOutputOptions} options XML output options.
10
20
  * @returns The XML string.
21
+ * @see xmlTransformedText
11
22
  */
12
23
  export declare function xmlText(node: XNode, options?: XmlOutputOptions): string;
13
24
  /**
@@ -35,7 +46,7 @@ export declare function xmlEscapeText(s: string): string;
35
46
  * @param name TODO
36
47
  * @returns TODO
37
48
  */
38
- export declare function xmlGetAttribute(node: XNode, name: string): any;
49
+ export declare function xmlGetAttribute(node: XNode, name: string): string;
39
50
  /**
40
51
  * Wrapper function to access the owner document uniformly for document
41
52
  * and other nodes: for the document node, the owner document is the
@@ -2,4 +2,5 @@ export type XmlOutputOptions = {
2
2
  cData: boolean;
3
3
  escape: boolean;
4
4
  selfClosingTags: boolean;
5
+ outputMethod: 'xml' | 'html' | 'text' | 'name';
5
6
  };
@@ -0,0 +1,47 @@
1
+ import { XDocument } from './xdocument';
2
+ /**
3
+ * Original author: Steffen Meschkat <mesch@google.com> (the `xmlParse` function,
4
+ * now `xmlStrictParse`).
5
+ *
6
+ * An XML parse and a minimal DOM implementation that just supports
7
+ * the subset of the W3C DOM that is used in the XSLT implementation.
8
+ */
9
+ export declare class XmlParser {
10
+ regexEmpty: RegExp;
11
+ XML10_TAGNAME_REGEXP: RegExp;
12
+ XML10_ATTRIBUTE_REGEXP: RegExp;
13
+ XML11_TAGNAME_REGEXP: RegExp;
14
+ XML11_ATTRIBUTE_REGEXP: RegExp;
15
+ lenientHtmlTags: string[];
16
+ /**
17
+ * The entry point for this parser.
18
+ * It verifies whether the document seems to be HTML.
19
+ * HTML is a special case if XML and it should be parsed differently.
20
+ * @param xmlOrHtml The XML or HTML content to be parsed.
21
+ * @returns A DOM document.
22
+ */
23
+ xmlParse(xmlOrHtml: string): XDocument;
24
+ /**
25
+ * Given an XNode, returns an object mapping prefixes to their corresponding namespaces in its scope.
26
+ * Default namespace is treated as if its prefix were the empty string.
27
+ * @param node The Node.
28
+ * @returns An object with prefixes and namespace URLs.
29
+ */
30
+ private namespaceMapAt;
31
+ /**
32
+ * HTML needs to be parsed differently because it's a special case of XML.
33
+ * Sources:
34
+ *
35
+ * - https://blog.teamtreehouse.com/to-close-or-not-to-close-tags-in-html5
36
+ * @param htmlText The HTML text
37
+ * @returns A DOM document.
38
+ */
39
+ private htmlParse;
40
+ /**
41
+ * Parses the given XML string with our custom, JavaScript XML parser.
42
+ * @param xml The XML String.
43
+ * @returns A XDocument.
44
+ * @author Steffen Meschkat <mesch@google.com>
45
+ */
46
+ private xmlStrictParse;
47
+ }
package/umd/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { XPath } from './xpath';
2
2
  export { Xslt, XsltOptions } from './xslt';
3
- export { xmlParse, xmlEscapeText } from './dom';
3
+ export { XmlParser, xmlEscapeText } from './dom';
4
4
  export { ExprContext } from './xpath';
@@ -4,7 +4,7 @@ export declare class NodeSetValue implements NodeValue {
4
4
  value: XNode[];
5
5
  type: string;
6
6
  constructor(value: any);
7
- stringValue(): any;
7
+ stringValue(): string;
8
8
  booleanValue(): boolean;
9
9
  numberValue(): number;
10
10
  nodeSetValue(): XNode[];
@@ -33,7 +33,7 @@ export declare class Xslt {
33
33
  options: XsltOptions;
34
34
  decimalFormatSettings: XsltDecimalFormatSettings;
35
35
  outputDocument: XDocument;
36
- outputMethod: string;
36
+ outputMethod: 'xml' | 'html' | 'text' | 'name';
37
37
  outputOmitXmlDeclaration: string;
38
38
  version: string;
39
39
  constructor(options?: Partial<XsltOptions>);