xslt-processor 2.1.4 → 2.2.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.
- package/dom/functions.d.ts +1 -1
- package/dom/functions.js.map +1 -1
- package/dom/xdocument.d.ts +0 -1
- package/dom/xdocument.js +4 -3
- package/dom/xdocument.js.map +1 -1
- package/dom/xml-functions.d.ts +1 -1
- package/dom/xml-functions.js +24 -13
- package/dom/xml-functions.js.map +1 -1
- package/dom/xml-parser.js +18 -11
- package/dom/xml-parser.js.map +1 -1
- package/dom/xnode.d.ts +18 -14
- package/dom/xnode.js +75 -51
- package/dom/xnode.js.map +1 -1
- package/package.json +1 -1
- package/umd/dom/functions.d.ts +1 -1
- package/umd/dom/xdocument.d.ts +0 -1
- package/umd/dom/xml-functions.d.ts +1 -1
- package/umd/dom/xnode.d.ts +18 -14
- package/umd/xpath/common-function.d.ts +1 -1
- package/umd/xpath/expr-context.d.ts +3 -2
- package/umd/xpath/expressions/predicate-expr.d.ts +2 -2
- package/umd/xpath/expressions/step-expr.d.ts +2 -1
- package/umd/xpath/expressions/variable-expr.d.ts +1 -1
- package/umd/xpath/values/boolean-value.d.ts +2 -1
- package/umd/xpath/values/node-value.d.ts +1 -1
- package/umd/xpath/values/number-value.d.ts +2 -1
- package/umd/xpath/values/string-value.d.ts +2 -1
- package/umd/xpath/xpath.d.ts +12 -4
- package/umd/xslt-processor.js +2 -2
- package/umd/xslt-processor.js.map +1 -1
- package/xpath/common-function.d.ts +1 -1
- package/xpath/common-function.js.map +1 -1
- package/xpath/expr-context.d.ts +3 -2
- package/xpath/expr-context.js.map +1 -1
- package/xpath/expressions/predicate-expr.d.ts +2 -2
- package/xpath/expressions/predicate-expr.js +6 -6
- package/xpath/expressions/predicate-expr.js.map +1 -1
- package/xpath/expressions/step-expr.d.ts +2 -1
- package/xpath/expressions/step-expr.js +55 -35
- package/xpath/expressions/step-expr.js.map +1 -1
- package/xpath/expressions/variable-expr.d.ts +1 -1
- package/xpath/expressions/variable-expr.js +2 -2
- package/xpath/expressions/variable-expr.js.map +1 -1
- package/xpath/values/boolean-value.d.ts +2 -1
- package/xpath/values/boolean-value.js.map +1 -1
- package/xpath/values/node-value.d.ts +1 -1
- package/xpath/values/number-value.d.ts +2 -1
- package/xpath/values/number-value.js.map +1 -1
- package/xpath/values/string-value.d.ts +2 -1
- package/xpath/values/string-value.js.map +1 -1
- package/xpath/xpath.d.ts +12 -4
- package/xpath/xpath.js +14 -6
- package/xpath/xpath.js.map +1 -1
- package/xslt/xslt.js +36 -28
- package/xslt/xslt.js.map +1 -1
|
@@ -5,4 +5,4 @@ export declare function copyArray(dst: any[], src: any[]): void;
|
|
|
5
5
|
* significant extra processing when evaluating attribute steps. With this
|
|
6
6
|
* function, we ignore any such attributes that has an empty string value.
|
|
7
7
|
*/
|
|
8
|
-
export declare function copyArrayIgnoringAttributesWithoutValue(dst: any, src: any): void;
|
|
8
|
+
export declare function copyArrayIgnoringAttributesWithoutValue(dst: any[], src: any[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-function.js","sourceRoot":"","sources":["../../src/xpath/common-function.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,qEAAqE;AACrE,SAAgB,SAAS,CAAC,GAAU,EAAE,GAAU;IAC5C,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,IAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;QACtC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;KAC/B;AACL,CAAC;AAND,8BAMC;AAED;;;;;GAKG;AACH,SAAgB,uCAAuC,CAAC,
|
|
1
|
+
{"version":3,"file":"common-function.js","sourceRoot":"","sources":["../../src/xpath/common-function.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,qEAAqE;AACrE,SAAgB,SAAS,CAAC,GAAU,EAAE,GAAU;IAC5C,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,IAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;QACtC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;KAC/B;AACL,CAAC;AAND,8BAMC;AAED;;;;;GAKG;AACH,SAAgB,uCAAuC,CAAC,GAAU,EAAE,GAAU;IAC1E,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;QACtC,sEAAsE;QACtE,+DAA+D;QAC/D,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;YAClB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACpB;KACJ;AACL,CAAC;AATD,0FASC"}
|
package/xpath/expr-context.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { XNode } from '../dom';
|
|
2
2
|
import { XsltDecimalFormatSettings } from '../xslt/xslt-decimal-format-settings';
|
|
3
|
+
import { NodeValue } from './values';
|
|
3
4
|
/**
|
|
4
5
|
* XPath expression evaluation context. An XPath context consists of a
|
|
5
6
|
* DOM node, a list of DOM nodes that contains this node, a number
|
|
@@ -42,7 +43,7 @@ export declare class ExprContext {
|
|
|
42
43
|
outputDepth: number;
|
|
43
44
|
xsltVersion: '1.0' | '2.0' | '3.0';
|
|
44
45
|
variables: {
|
|
45
|
-
[name: string]:
|
|
46
|
+
[name: string]: NodeValue;
|
|
46
47
|
};
|
|
47
48
|
knownNamespaces: {
|
|
48
49
|
[alias: string]: string;
|
|
@@ -96,7 +97,7 @@ export declare class ExprContext {
|
|
|
96
97
|
clone(opt_nodeList?: XNode[], opt_outputNodeList?: XNode[], opt_position?: number, opt_outputPosition?: number): ExprContext;
|
|
97
98
|
cloneByOutput(opt_outputNodeList?: XNode[], opt_outputPosition?: number, opt_outputDepth?: number): ExprContext;
|
|
98
99
|
setVariable(name?: any, value?: any): void;
|
|
99
|
-
getVariable(name: string):
|
|
100
|
+
getVariable(name: string): NodeValue;
|
|
100
101
|
setNode(position: number): void;
|
|
101
102
|
contextSize(): number;
|
|
102
103
|
isCaseInsensitive(): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr-context.js","sourceRoot":"","sources":["../../src/xpath/expr-context.ts"],"names":[],"mappings":";;;AAAA,0CAAiD;AACjD,wDAAsD;AACtD,0DAAuD;AACvD,sDAAoD;AACpD,sDAAoD;AACpD,mCAAsC;
|
|
1
|
+
{"version":3,"file":"expr-context.js","sourceRoot":"","sources":["../../src/xpath/expr-context.ts"],"names":[],"mappings":";;;AAAA,0CAAiD;AACjD,wDAAsD;AACtD,0DAAuD;AACvD,sDAAoD;AACpD,sDAAoD;AACpD,mCAAsC;AAKtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH;IAuBI;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,qBACI,QAAiB,EACjB,cAAuB,EACvB,WAA0C,EAC1C,YAAqB,EACrB,kBAA2B,EAC3B,eAAwB,EACxB,yBAAqD,EACrD,aAAuC,EACvC,mBAAiD,EACjD,UAAwB,EACxB,mBAAyB,EACzB,gCAAsC,EACtC,sBAA4B,EAC5B,+BAAqC;QAXrC,4BAAA,EAAA,mBAA0C;QAa1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,QAAQ,GAAG,YAAY,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,kBAAkB,IAAI,CAAC,CAAC;QAE9C,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,mBAAmB,IAAI,EAAE,CAAC;QAEjD,IAAI,CAAC,MAAM,GAAG,UAAU,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,mBAAmB,IAAI,KAAK,CAAC;QACpD,IAAI,CAAC,4BAA4B,GAAG,gCAAgC,IAAI,KAAK,CAAC;QAC9E,IAAI,CAAC,kBAAkB,GAAG,sBAAsB,IAAI,KAAK,CAAC;QAC1D,IAAI,CAAC,2BAA2B,GAAG,+BAA+B,IAAI,KAAK,CAAC;QAC5E,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,eAAe,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC,qBAAqB,GAAG,yBAAyB,IAAI;YACtD,gBAAgB,EAAE,GAAG;YACrB,iBAAiB,EAAE,GAAG;YACtB,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,GAAG;YACd,GAAG,EAAE,KAAK;YACV,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,GAAG;YACd,KAAK,EAAE,GAAG;YACV,gBAAgB,EAAE,GAAG;SACxB,CAAC;QAEF,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;SAC/B;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,IAAI,6BAAiB,EAAE;YACnE,+DAA+D;YAC/D,kEAAkE;YAClE,kEAAkE;YAClE,mDAAmD;YACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC5C;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;SAC1D;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,2BAAK,GAAL,UAAM,YAAsB,EAAE,kBAA4B,EAAE,YAAqB,EAAE,kBAA2B;QAC1G,OAAO,IAAI,WAAW,CAClB,YAAY,IAAI,IAAI,CAAC,QAAQ,EAC7B,kBAAkB,IAAI,IAAI,CAAC,cAAc,EACzC,IAAI,CAAC,WAAW,EAChB,OAAO,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAClE,OAAO,kBAAkB,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EACpF,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,eAAe,EACpB,IAAI,EACJ,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,4BAA4B,EACjC,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,2BAA2B,CACnC,CAAC;IACN,CAAC;IAED,mCAAa,GAAb,UAAc,kBAA4B,EAAE,kBAA2B,EAAE,eAAwB;QAC7F,OAAO,IAAI,WAAW,CAClB,IAAI,CAAC,QAAQ,EACb,kBAAkB,IAAI,IAAI,CAAC,cAAc,EACzC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,QAAQ,EACb,OAAO,kBAAkB,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EACpF,OAAO,eAAe,KAAK,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAC3E,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,eAAe,EACpB,IAAI,EACJ,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,4BAA4B,EACjC,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,2BAA2B,CACnC,CAAC;IACN,CAAC;IAED,iCAAW,GAAX,UAAY,IAAU,EAAE,KAAW;QAC/B,IACI,KAAK,YAAY,0BAAW;YAC5B,KAAK,YAAY,4BAAY;YAC7B,KAAK,YAAY,0BAAW;YAC5B,KAAK,YAAY,6BAAY,EAC/B;YACE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAC7B,OAAO;SACV;QACD,IAAI,MAAM,KAAK,KAAK,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,4BAAY,CAAC,IAAI,CAAC,CAAC;SACjD;aAAM,IAAI,OAAO,KAAK,KAAK,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,4BAAY,CAAC,KAAK,CAAC,CAAC;SAClD;aAAM,IAAI,mBAAU,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,0BAAW,CAAC,KAAK,CAAC,CAAC;SACjD;aAAM;YACH,yBAAyB;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,0BAAW,CAAC,KAAK,CAAC,CAAC;SACjD;IACL,CAAC;IAED,iCAAW,GAAX,UAAY,IAAY;QACpB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE;YAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC/B;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,6BAAO,GAAP,UAAQ,QAAgB;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,iCAAW,GAAX;QACI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,uCAAiB,GAAjB;QACI,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,wCAAkB,GAAlB,UAAmB,eAAe;QAC9B,OAAO,CAAC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,oDAA8B,GAA9B;QACI,OAAO,IAAI,CAAC,4BAA4B,CAAC;IAC7C,CAAC;IAED,qDAA+B,GAA/B,UAAgC,MAAM;QAClC,OAAO,CAAC,IAAI,CAAC,4BAA4B,GAAG,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,0CAAoB,GAApB;QACI,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED,2CAAqB,GAArB,UAAsB,kBAAkB;QACpC,OAAO,CAAC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,mDAA6B,GAA7B;QACI,OAAO,IAAI,CAAC,2BAA2B,CAAC;IAC5C,CAAC;IAED,oDAA8B,GAA9B,UAA+B,2BAA2B;QACtD,OAAO,CAAC,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAC,CAAC;IAC5E,CAAC;IACL,kBAAC;AAAD,CAAC,AAnOD,IAmOC;AAnOY,kCAAW"}
|
|
@@ -2,7 +2,7 @@ import { ExprContext } from "..";
|
|
|
2
2
|
import { BooleanValue } from "../values/boolean-value";
|
|
3
3
|
import { Expression } from "./expression";
|
|
4
4
|
export declare class PredicateExpr extends Expression {
|
|
5
|
-
|
|
6
|
-
constructor(
|
|
5
|
+
expression: Expression;
|
|
6
|
+
constructor(expression: Expression);
|
|
7
7
|
evaluate(context: ExprContext): BooleanValue;
|
|
8
8
|
}
|
|
@@ -20,20 +20,20 @@ var boolean_value_1 = require("../values/boolean-value");
|
|
|
20
20
|
var expression_1 = require("./expression");
|
|
21
21
|
var PredicateExpr = /** @class */ (function (_super) {
|
|
22
22
|
__extends(PredicateExpr, _super);
|
|
23
|
-
function PredicateExpr(
|
|
23
|
+
function PredicateExpr(expression) {
|
|
24
24
|
var _this = _super.call(this) || this;
|
|
25
|
-
_this.
|
|
25
|
+
_this.expression = expression;
|
|
26
26
|
return _this;
|
|
27
27
|
}
|
|
28
28
|
PredicateExpr.prototype.evaluate = function (context) {
|
|
29
|
-
var
|
|
30
|
-
if (
|
|
29
|
+
var value = this.expression.evaluate(context);
|
|
30
|
+
if (value.type == 'number') {
|
|
31
31
|
// NOTE(mesch): Internally, position is represented starting with
|
|
32
32
|
// 0, however in XPath position starts with 1. See functions
|
|
33
33
|
// position() and last().
|
|
34
|
-
return new boolean_value_1.BooleanValue(context.position ==
|
|
34
|
+
return new boolean_value_1.BooleanValue(context.position == value.numberValue() - 1);
|
|
35
35
|
}
|
|
36
|
-
return new boolean_value_1.BooleanValue(
|
|
36
|
+
return new boolean_value_1.BooleanValue(value.booleanValue());
|
|
37
37
|
};
|
|
38
38
|
return PredicateExpr;
|
|
39
39
|
}(expression_1.Expression));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predicate-expr.js","sourceRoot":"","sources":["../../../src/xpath/expressions/predicate-expr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,yDAAuD;AACvD,2CAA0C;AAE1C;IAAmC,iCAAU;IAGzC,uBAAY,
|
|
1
|
+
{"version":3,"file":"predicate-expr.js","sourceRoot":"","sources":["../../../src/xpath/expressions/predicate-expr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,yDAAuD;AACvD,2CAA0C;AAE1C;IAAmC,iCAAU;IAGzC,uBAAY,UAAsB;QAAlC,YACI,iBAAO,SAEV;QADG,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;;IACjC,CAAC;IAED,gCAAQ,GAAR,UAAS,OAAoB;QACzB,IAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE;YACxB,iEAAiE;YACjE,4DAA4D;YAC5D,yBAAyB;YACzB,OAAO,IAAI,4BAAY,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;SACxE;QAED,OAAO,IAAI,4BAAY,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IAClD,CAAC;IACL,oBAAC;AAAD,CAAC,AAnBD,CAAmC,uBAAU,GAmB5C;AAnBY,sCAAa"}
|
|
@@ -2,6 +2,7 @@ import { ExprContext } from '../expr-context';
|
|
|
2
2
|
import { NodeSetValue } from '../values/node-set-value';
|
|
3
3
|
import { Expression } from './expression';
|
|
4
4
|
import { XPath } from '../xpath';
|
|
5
|
+
import { PredicateExpr } from './predicate-expr';
|
|
5
6
|
export declare class StepExpr extends Expression {
|
|
6
7
|
axis: any;
|
|
7
8
|
nodeTest: any;
|
|
@@ -19,6 +20,6 @@ export declare class StepExpr extends Expression {
|
|
|
19
20
|
*/
|
|
20
21
|
private predicateExprHasPositionalSelector;
|
|
21
22
|
private exprReturnsNumberValue;
|
|
22
|
-
appendPredicate(
|
|
23
|
+
appendPredicate(predicateExpression: PredicateExpr): void;
|
|
23
24
|
evaluate(context: ExprContext): NodeSetValue;
|
|
24
25
|
}
|
|
@@ -103,14 +103,14 @@ var StepExpr = /** @class */ (function (_super) {
|
|
|
103
103
|
}
|
|
104
104
|
return false;
|
|
105
105
|
};
|
|
106
|
-
StepExpr.prototype.appendPredicate = function (
|
|
107
|
-
this.predicate.push(
|
|
106
|
+
StepExpr.prototype.appendPredicate = function (predicateExpression) {
|
|
107
|
+
this.predicate.push(predicateExpression);
|
|
108
108
|
if (!this.hasPositionalPredicate) {
|
|
109
|
-
this.hasPositionalPredicate = this.predicateExprHasPositionalSelector(
|
|
109
|
+
this.hasPositionalPredicate = this.predicateExprHasPositionalSelector(predicateExpression.expression);
|
|
110
110
|
}
|
|
111
111
|
};
|
|
112
112
|
StepExpr.prototype.evaluate = function (context) {
|
|
113
|
-
var
|
|
113
|
+
var node = context.nodeList[context.position];
|
|
114
114
|
var nodeList = [];
|
|
115
115
|
var skipNodeTest = false;
|
|
116
116
|
if (this.nodeTest instanceof node_test_any_1.NodeTestAny) {
|
|
@@ -118,27 +118,34 @@ var StepExpr = /** @class */ (function (_super) {
|
|
|
118
118
|
}
|
|
119
119
|
switch (this.axis) {
|
|
120
120
|
case tokens_1.xPathAxis.ANCESTOR_OR_SELF:
|
|
121
|
-
nodeList.push(
|
|
122
|
-
for (var n =
|
|
123
|
-
|
|
121
|
+
nodeList.push(node);
|
|
122
|
+
for (var n = node.parentNode; n; n = n.parentNode) {
|
|
123
|
+
if (n.nodeType !== constants_1.DOM_ATTRIBUTE_NODE) {
|
|
124
|
+
nodeList.push(n);
|
|
125
|
+
}
|
|
124
126
|
}
|
|
125
127
|
break;
|
|
126
128
|
case tokens_1.xPathAxis.ANCESTOR:
|
|
127
|
-
for (var n =
|
|
128
|
-
|
|
129
|
+
for (var n = node.parentNode; n; n = n.parentNode) {
|
|
130
|
+
if (n.nodeType !== constants_1.DOM_ATTRIBUTE_NODE) {
|
|
131
|
+
nodeList.push(n);
|
|
132
|
+
}
|
|
129
133
|
}
|
|
130
134
|
break;
|
|
131
135
|
case tokens_1.xPathAxis.ATTRIBUTE:
|
|
132
|
-
|
|
136
|
+
var attributes = node.childNodes.filter(function (n) { return n.nodeType === constants_1.DOM_ATTRIBUTE_NODE; });
|
|
137
|
+
if (this.nodeTest.name !== undefined) {
|
|
133
138
|
// single-attribute step
|
|
134
|
-
if (
|
|
135
|
-
if (
|
|
139
|
+
if (attributes) {
|
|
140
|
+
if (attributes instanceof Array) {
|
|
136
141
|
// probably evaluating on document created by xmlParse()
|
|
137
|
-
(0, common_function_1.copyArray)(nodeList,
|
|
142
|
+
(0, common_function_1.copyArray)(nodeList, attributes);
|
|
138
143
|
}
|
|
139
144
|
else {
|
|
145
|
+
// TODO: I think this `else` does't make any sense now.
|
|
146
|
+
// Before unifying attributes with child nodes, `node.attributes` was always an array.
|
|
140
147
|
if (this.nodeTest.name == 'style') {
|
|
141
|
-
var value =
|
|
148
|
+
var value = node.getAttributeValue('style');
|
|
142
149
|
if (value && typeof value != 'string') {
|
|
143
150
|
// this is the case where indexing into the attributes array
|
|
144
151
|
// doesn't give us the attribute node in IE - we create our own
|
|
@@ -146,11 +153,11 @@ var StepExpr = /** @class */ (function (_super) {
|
|
|
146
153
|
nodeList.push(dom_1.XNode.create(constants_1.DOM_ATTRIBUTE_NODE, 'style', value.cssText, document));
|
|
147
154
|
}
|
|
148
155
|
else {
|
|
149
|
-
nodeList.push(
|
|
156
|
+
nodeList.push(attributes[this.nodeTest.name]);
|
|
150
157
|
}
|
|
151
158
|
}
|
|
152
159
|
else {
|
|
153
|
-
nodeList.push(
|
|
160
|
+
nodeList.push(attributes[this.nodeTest.name]);
|
|
154
161
|
}
|
|
155
162
|
}
|
|
156
163
|
}
|
|
@@ -158,73 +165,86 @@ var StepExpr = /** @class */ (function (_super) {
|
|
|
158
165
|
else {
|
|
159
166
|
// all-attributes step
|
|
160
167
|
if (context.ignoreAttributesWithoutValue) {
|
|
161
|
-
(0, common_function_1.copyArrayIgnoringAttributesWithoutValue)(nodeList,
|
|
168
|
+
(0, common_function_1.copyArrayIgnoringAttributesWithoutValue)(nodeList, attributes);
|
|
162
169
|
}
|
|
163
170
|
else {
|
|
164
|
-
(0, common_function_1.copyArray)(nodeList,
|
|
171
|
+
(0, common_function_1.copyArray)(nodeList, attributes);
|
|
165
172
|
}
|
|
166
173
|
}
|
|
167
174
|
break;
|
|
168
175
|
case tokens_1.xPathAxis.CHILD:
|
|
169
|
-
(0, common_function_1.copyArray)(nodeList,
|
|
176
|
+
(0, common_function_1.copyArray)(nodeList, node.childNodes.filter(function (n) { return n.nodeType !== constants_1.DOM_ATTRIBUTE_NODE; }));
|
|
170
177
|
break;
|
|
171
178
|
case tokens_1.xPathAxis.DESCENDANT_OR_SELF: {
|
|
172
179
|
if (this.nodeTest.evaluate(context).booleanValue()) {
|
|
173
|
-
nodeList.push(
|
|
180
|
+
nodeList.push(node);
|
|
174
181
|
}
|
|
175
182
|
var tagName = this.xPath.xPathExtractTagNameFromNodeTest(this.nodeTest, context.ignoreNonElementNodesForNTA);
|
|
176
|
-
this.xPath.xPathCollectDescendants(nodeList,
|
|
183
|
+
this.xPath.xPathCollectDescendants(nodeList, node, tagName);
|
|
177
184
|
if (tagName)
|
|
178
185
|
skipNodeTest = true;
|
|
179
186
|
break;
|
|
180
187
|
}
|
|
181
188
|
case tokens_1.xPathAxis.DESCENDANT: {
|
|
182
189
|
var tagName = this.xPath.xPathExtractTagNameFromNodeTest(this.nodeTest, context.ignoreNonElementNodesForNTA);
|
|
183
|
-
this.xPath.xPathCollectDescendants(nodeList,
|
|
190
|
+
this.xPath.xPathCollectDescendants(nodeList, node, tagName);
|
|
184
191
|
if (tagName)
|
|
185
192
|
skipNodeTest = true;
|
|
186
193
|
break;
|
|
187
194
|
}
|
|
188
195
|
case tokens_1.xPathAxis.FOLLOWING:
|
|
189
|
-
for (var n =
|
|
196
|
+
for (var n = node; n; n = n.parentNode) {
|
|
190
197
|
for (var nn = n.nextSibling; nn; nn = nn.nextSibling) {
|
|
191
|
-
|
|
198
|
+
if (nn.nodeType !== constants_1.DOM_ATTRIBUTE_NODE) {
|
|
199
|
+
nodeList.push(nn);
|
|
200
|
+
}
|
|
192
201
|
this.xPath.xPathCollectDescendants(nodeList, nn);
|
|
193
202
|
}
|
|
194
203
|
}
|
|
195
204
|
break;
|
|
196
205
|
case tokens_1.xPathAxis.FOLLOWING_SIBLING:
|
|
197
|
-
|
|
198
|
-
|
|
206
|
+
if (node.nodeType === constants_1.DOM_ATTRIBUTE_NODE) {
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
for (var n = node.nextSibling; n; n = n.nextSibling) {
|
|
210
|
+
if (n.nodeType !== constants_1.DOM_ATTRIBUTE_NODE) {
|
|
211
|
+
nodeList.push(n);
|
|
212
|
+
}
|
|
199
213
|
}
|
|
200
214
|
break;
|
|
201
215
|
case tokens_1.xPathAxis.NAMESPACE:
|
|
202
216
|
throw new Error('not implemented: axis namespace');
|
|
203
217
|
case tokens_1.xPathAxis.PARENT:
|
|
204
|
-
if (
|
|
205
|
-
nodeList.push(
|
|
218
|
+
if (node.parentNode) {
|
|
219
|
+
nodeList.push(node.parentNode);
|
|
206
220
|
}
|
|
207
221
|
break;
|
|
208
222
|
case tokens_1.xPathAxis.PRECEDING:
|
|
209
|
-
for (var n =
|
|
223
|
+
for (var n = node; n; n = n.parentNode) {
|
|
210
224
|
for (var nn = n.previousSibling; nn; nn = nn.previousSibling) {
|
|
211
|
-
|
|
225
|
+
if (nn.nodeType !== constants_1.DOM_ATTRIBUTE_NODE) {
|
|
226
|
+
nodeList.push(nn);
|
|
227
|
+
}
|
|
212
228
|
this.xPath.xPathCollectDescendantsReverse(nodeList, nn);
|
|
213
229
|
}
|
|
214
230
|
}
|
|
215
231
|
break;
|
|
216
232
|
case tokens_1.xPathAxis.PRECEDING_SIBLING:
|
|
217
|
-
for (var n =
|
|
218
|
-
|
|
233
|
+
for (var n = node.previousSibling; n; n = n.previousSibling) {
|
|
234
|
+
if (n.nodeType !== constants_1.DOM_ATTRIBUTE_NODE) {
|
|
235
|
+
nodeList.push(n);
|
|
236
|
+
}
|
|
219
237
|
}
|
|
220
238
|
break;
|
|
221
239
|
case tokens_1.xPathAxis.SELF:
|
|
222
|
-
nodeList.push(
|
|
240
|
+
nodeList.push(node);
|
|
223
241
|
break;
|
|
224
242
|
case tokens_1.xPathAxis.SELF_AND_SIBLINGS:
|
|
225
243
|
for (var _i = 0, _a = context.nodeList; _i < _a.length; _i++) {
|
|
226
|
-
var
|
|
227
|
-
|
|
244
|
+
var node_1 = _a[_i];
|
|
245
|
+
if (node_1.nodeType !== constants_1.DOM_ATTRIBUTE_NODE) {
|
|
246
|
+
nodeList.push(node_1);
|
|
247
|
+
}
|
|
228
248
|
}
|
|
229
249
|
break;
|
|
230
250
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-expr.js","sourceRoot":"","sources":["../../../src/xpath/expressions/step-expr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,6CAAqD;AACrD,iCAAkC;AAElC,2DAAwD;AACxD,6DAA0D;AAC1D,oCAAsC;AACtC,2CAA0C;AAE1C,6CAA2C;AAC3C,2DAAwD;AACxD,6CAA2C;AAC3C,uDAAoD;AACpD,sDAAwF;
|
|
1
|
+
{"version":3,"file":"step-expr.js","sourceRoot":"","sources":["../../../src/xpath/expressions/step-expr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,6CAAqD;AACrD,iCAAkC;AAElC,2DAAwD;AACxD,6DAA0D;AAC1D,oCAAsC;AACtC,2CAA0C;AAE1C,6CAA2C;AAC3C,2DAAwD;AACxD,6CAA2C;AAC3C,uDAAoD;AACpD,sDAAwF;AAGxF;IAA8B,4BAAU;IAOpC,kBAAY,IAAS,EAAE,QAAa,EAAE,KAAY,EAAE,aAAmB;QAAvE,YACI,iBAAO,SAaV;QAZG,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,KAAI,CAAC,SAAS,GAAG,aAAa,IAAI,EAAE,CAAC;QACrC,KAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACpC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC5C,IAAI,KAAI,CAAC,kCAAkC,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBACjE,KAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACnC,MAAM;aACT;SACJ;;IACL,CAAC;IAED;;;;;;;OAOG;IACK,qDAAkC,GAA1C,UAA2C,IAAgB,EAAE,eAAqB;QAC9E,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE;YACvD,iDAAiD;YACjD,OAAO,IAAI,CAAC;SACf;QACD,IAAI,IAAI,YAAY,qCAAgB,EAAE;YAClC,IAAM,KAAK,GAAI,IAAY,CAAC,IAAI,CAAC,KAAK,CAAC;YACvC,OAAO,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,UAAU,CAAC;SACjD;QACD,IAAI,IAAI,YAAY,wBAAU,EAAE;YAC5B,OAAO,CACH,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;gBACzD,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAC5D,CAAC;SACL;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,yCAAsB,GAA9B,UAA+B,IAAI;QAC/B,IAAI,IAAI,YAAY,qCAAgB,EAAE;YAClC,IAAI,QAAQ,GAAG;gBACX,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;gBACX,eAAe,EAAE,IAAI;gBACrB,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;aACd,CAAC;YACF,OAAO,QAAQ,CAAE,IAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7C;QAED,IAAI,IAAI,YAAY,iCAAc,EAAE;YAChC,OAAO,IAAI,CAAC;SACf;QAED,IAAI,IAAI,YAAY,wBAAU,EAAE;YAC5B,IAAI,QAAQ,GAAG;gBACX,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;aACZ,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;SAClC;QAED,IAAI,IAAI,YAAY,wBAAU,EAAE;YAC5B,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,kCAAe,GAAf,UAAgB,mBAAkC;QAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAC9B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,kCAAkC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;SACzG;IACL,CAAC;IAED,2BAAQ,GAAR,UAAS,OAAoB;QACzB,IAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,IAAI,IAAI,CAAC,QAAQ,YAAY,2BAAW,EAAE;YACtC,YAAY,GAAG,IAAI,CAAC;SACvB;QAED,QAAQ,IAAI,CAAC,IAAI,EAAE;YACf,KAAK,kBAAS,CAAC,gBAAgB;gBAC3B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE;oBAC/C,IAAI,CAAC,CAAC,QAAQ,KAAK,8BAAkB,EAAE;wBACnC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACpB;iBACJ;gBACD,MAAM;YAEV,KAAK,kBAAS,CAAC,QAAQ;gBACnB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE;oBAC/C,IAAI,CAAC,CAAC,QAAQ,KAAK,8BAAkB,EAAE;wBACnC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACpB;iBACJ;gBACD,MAAM;YAEV,KAAK,kBAAS,CAAC,SAAS;gBACpB,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ,KAAK,8BAAkB,EAAjC,CAAiC,CAAC,CAAC;gBAClF,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE;oBAClC,wBAAwB;oBACxB,IAAI,UAAU,EAAE;wBACZ,IAAI,UAAU,YAAY,KAAK,EAAE;4BAC7B,wDAAwD;4BACxD,IAAA,2BAAS,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;yBACnC;6BAAM;4BACH,uDAAuD;4BACvD,sFAAsF;4BACtF,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,EAAE;gCAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gCAC9C,IAAI,KAAK,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;oCACnC,4DAA4D;oCAC5D,+DAA+D;oCAC/D,eAAe;oCACf,QAAQ,CAAC,IAAI,CAAC,WAAK,CAAC,MAAM,CAAC,8BAAkB,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;iCACrF;qCAAM;oCACH,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;iCACjD;6BACJ;iCAAM;gCACH,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;6BACjD;yBACJ;qBACJ;iBACJ;qBAAM;oBACH,sBAAsB;oBACtB,IAAI,OAAO,CAAC,4BAA4B,EAAE;wBACtC,IAAA,yDAAuC,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;qBACjE;yBAAM;wBACH,IAAA,2BAAS,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;qBACnC;iBACJ;gBAED,MAAM;YAEV,KAAK,kBAAS,CAAC,KAAK;gBAChB,IAAA,2BAAS,EAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ,KAAK,8BAAkB,EAAjC,CAAiC,CAAC,CAAC,CAAC;gBACpF,MAAM;YAEV,KAAK,kBAAS,CAAC,kBAAkB,CAAC,CAAC;gBAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;oBAChD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACvB;gBAED,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CACpD,IAAI,CAAC,QAAQ,EACb,OAAO,CAAC,2BAA2B,CACtC,CAAC;gBAEF,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC5D,IAAI,OAAO;oBAAE,YAAY,GAAG,IAAI,CAAC;gBAEjC,MAAM;aACT;YAED,KAAK,kBAAS,CAAC,UAAU,CAAC,CAAC;gBACvB,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CACpD,IAAI,CAAC,QAAQ,EACb,OAAO,CAAC,2BAA2B,CACtC,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC5D,IAAI,OAAO;oBAAE,YAAY,GAAG,IAAI,CAAC;gBAEjC,MAAM;aACT;YAED,KAAK,kBAAS,CAAC,SAAS;gBACpB,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE;oBACpC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;wBAClD,IAAI,EAAE,CAAC,QAAQ,KAAK,8BAAkB,EAAE;4BACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;yBACrB;wBAED,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;qBACpD;iBACJ;gBAED,MAAM;YAEV,KAAK,kBAAS,CAAC,iBAAiB;gBAC5B,IAAI,IAAI,CAAC,QAAQ,KAAK,8BAAkB,EAAE;oBACtC,MAAM;iBACT;gBAED,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;oBACjD,IAAI,CAAC,CAAC,QAAQ,KAAK,8BAAkB,EAAE;wBACnC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACpB;iBACJ;gBAED,MAAM;YAEV,KAAK,kBAAS,CAAC,SAAS;gBACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAEvD,KAAK,kBAAS,CAAC,MAAM;gBACjB,IAAI,IAAI,CAAC,UAAU,EAAE;oBACjB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAClC;gBAED,MAAM;YAEV,KAAK,kBAAS,CAAC,SAAS;gBACpB,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE;oBACpC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE;wBAC1D,IAAI,EAAE,CAAC,QAAQ,KAAK,8BAAkB,EAAE;4BACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;yBACrB;wBAED,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;qBAC3D;iBACJ;gBAED,MAAM;YAEV,KAAK,kBAAS,CAAC,iBAAiB;gBAC5B,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE;oBACzD,IAAI,CAAC,CAAC,QAAQ,KAAK,8BAAkB,EAAE;wBACnC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACpB;iBACJ;gBAED,MAAM;YAEV,KAAK,kBAAS,CAAC,IAAI;gBACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM;YAEV,KAAK,kBAAS,CAAC,iBAAiB;gBAC5B,KAAmB,UAAgB,EAAhB,KAAA,OAAO,CAAC,QAAQ,EAAhB,cAAgB,EAAhB,IAAgB,EAAE;oBAAhC,IAAM,MAAI,SAAA;oBACX,IAAI,MAAI,CAAC,QAAQ,KAAK,8BAAkB,EAAE;wBACtC,QAAQ,CAAC,IAAI,CAAC,MAAI,CAAC,CAAC;qBACvB;iBACJ;gBAED,MAAM;YAEV;gBACI,MAAM,IAAI,KAAK,CAAC,iCAA0B,IAAI,CAAC,IAAI,CAAE,CAAC,CAAC;SAC9D;QAED,IAAI,CAAC,YAAY,EAAE;YACf,oBAAoB;YACpB,IAAI,SAAS,GAAG,QAAQ,CAAC;YACzB,QAAQ,GAAG,EAAE,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;gBACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE;oBAC/E,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;aACJ;SACJ;QAED,qBAAqB;QACrB,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;gBAC5C,IAAI,SAAS,GAAG,QAAQ,CAAC;gBACzB,QAAQ,GAAG,EAAE,CAAC;gBACd,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;oBAC1C,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;oBACtB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE;wBACpF,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACpB;iBACJ;aACJ;SACJ;QAED,OAAO,IAAI,6BAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IACL,eAAC;AAAD,CAAC,AAtSD,CAA8B,uBAAU,GAsSvC;AAtSY,4BAAQ"}
|
|
@@ -24,8 +24,8 @@ var VariableExpr = /** @class */ (function (_super) {
|
|
|
24
24
|
_this.name = name;
|
|
25
25
|
return _this;
|
|
26
26
|
}
|
|
27
|
-
VariableExpr.prototype.evaluate = function (
|
|
28
|
-
return
|
|
27
|
+
VariableExpr.prototype.evaluate = function (context) {
|
|
28
|
+
return context.getVariable(this.name);
|
|
29
29
|
};
|
|
30
30
|
return VariableExpr;
|
|
31
31
|
}(expression_1.Expression));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variable-expr.js","sourceRoot":"","sources":["../../../src/xpath/expressions/variable-expr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,2CAA0C;AAE1C;IAAkC,gCAAU;IAGxC,sBAAY,IAAY;QAAxB,YACI,iBAAO,SAEV;QADG,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;;IACrB,CAAC;IAED,+BAAQ,GAAR,UAAS,
|
|
1
|
+
{"version":3,"file":"variable-expr.js","sourceRoot":"","sources":["../../../src/xpath/expressions/variable-expr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,2CAA0C;AAE1C;IAAkC,gCAAU;IAGxC,sBAAY,IAAY;QAAxB,YACI,iBAAO,SAEV;QADG,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;;IACrB,CAAC;IAED,+BAAQ,GAAR,UAAS,OAAoB;QACzB,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACL,mBAAC;AAAD,CAAC,AAXD,CAAkC,uBAAU,GAW3C;AAXY,oCAAY"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { XNode } from "../../dom";
|
|
1
2
|
import { NodeValue } from "./node-value";
|
|
2
3
|
export declare class BooleanValue implements NodeValue {
|
|
3
4
|
value: any;
|
|
@@ -6,5 +7,5 @@ export declare class BooleanValue implements NodeValue {
|
|
|
6
7
|
stringValue(): string;
|
|
7
8
|
booleanValue(): any;
|
|
8
9
|
numberValue(): 1 | 0;
|
|
9
|
-
nodeSetValue():
|
|
10
|
+
nodeSetValue(): XNode[];
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boolean-value.js","sourceRoot":"","sources":["../../../src/xpath/values/boolean-value.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"boolean-value.js","sourceRoot":"","sources":["../../../src/xpath/values/boolean-value.ts"],"names":[],"mappings":";;;AAGA;IAII,sBAAY,KAAU;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,kCAAW,GAAX;QACI,OAAO,UAAG,IAAI,CAAC,KAAK,CAAE,CAAC;IAC3B,CAAC;IAED,mCAAY,GAAZ;QACI,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,kCAAW,GAAX;QACI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,mCAAY,GAAZ;QACI,MAAM,IAAI,CAAC;IACf,CAAC;IACL,mBAAC;AAAD,CAAC,AAxBD,IAwBC;AAxBY,oCAAY"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { XNode } from "../../dom";
|
|
1
2
|
import { NodeValue } from "./node-value";
|
|
2
3
|
export declare class NumberValue implements NodeValue {
|
|
3
4
|
value: any;
|
|
@@ -6,5 +7,5 @@ export declare class NumberValue implements NodeValue {
|
|
|
6
7
|
stringValue(): string;
|
|
7
8
|
booleanValue(): boolean;
|
|
8
9
|
numberValue(): number;
|
|
9
|
-
nodeSetValue():
|
|
10
|
+
nodeSetValue(): XNode[];
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-value.js","sourceRoot":"","sources":["../../../src/xpath/values/number-value.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"number-value.js","sourceRoot":"","sources":["../../../src/xpath/values/number-value.ts"],"names":[],"mappings":";;;AAGA;IAII,qBAAY,KAAU;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;IACzB,CAAC;IAED,iCAAW,GAAX;QACI,OAAO,UAAG,IAAI,CAAC,KAAK,CAAE,CAAC;IAC3B,CAAC;IAED,kCAAY,GAAZ;QACI,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,iCAAW,GAAX;QACI,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,kCAAY,GAAZ;QACI,MAAM,IAAI,CAAC;IACf,CAAC;IACL,kBAAC;AAAD,CAAC,AAxBD,IAwBC;AAxBY,kCAAW"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { XNode } from "../../dom";
|
|
1
2
|
import { NodeValue } from "./node-value";
|
|
2
3
|
export declare class StringValue implements NodeValue {
|
|
3
4
|
value: any;
|
|
@@ -6,5 +7,5 @@ export declare class StringValue implements NodeValue {
|
|
|
6
7
|
stringValue(): string;
|
|
7
8
|
booleanValue(): boolean;
|
|
8
9
|
numberValue(): number;
|
|
9
|
-
nodeSetValue():
|
|
10
|
+
nodeSetValue(): XNode[];
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string-value.js","sourceRoot":"","sources":["../../../src/xpath/values/string-value.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"string-value.js","sourceRoot":"","sources":["../../../src/xpath/values/string-value.ts"],"names":[],"mappings":";;;AAGA;IAII,qBAAY,KAAU;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;IACzB,CAAC;IAED,iCAAW,GAAX;QACI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,kCAAY,GAAZ;QACI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,iCAAW,GAAX;QACI,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,kCAAY,GAAZ;QACI,MAAM,IAAI,CAAC;IACf,CAAC;IACL,kBAAC;AAAD,CAAC,AAxBD,IAwBC;AAxBY,kCAAW"}
|
package/xpath/xpath.d.ts
CHANGED
|
@@ -3,7 +3,8 @@ import { BinaryExpr, FunctionCallExpr, LiteralExpr, LocationExpr, NumberExpr, Pa
|
|
|
3
3
|
import { Expression } from './expressions/expression';
|
|
4
4
|
import { XPathTokenRule } from './xpath-token-rule';
|
|
5
5
|
import { XNode } from '../dom';
|
|
6
|
-
import { NodeTestAny, NodeTestElementOrAttribute, NodeTestNC, NodeTestName, NodeTestText, NodeTestComment, NodeTestPI } from './node-tests';
|
|
6
|
+
import { NodeTestAny, NodeTestElementOrAttribute, NodeTestNC, NodeTestName, NodeTestText, NodeTestComment, NodeTestPI, NodeTest } from './node-tests';
|
|
7
|
+
import { NodeValue } from './values';
|
|
7
8
|
export declare class XPath {
|
|
8
9
|
xPathParseCache: any;
|
|
9
10
|
xPathRules: any[];
|
|
@@ -87,9 +88,16 @@ export declare class XPath {
|
|
|
87
88
|
makeSimpleExpr2(expr: any): LocationExpr;
|
|
88
89
|
stackToString(stack: any[]): string;
|
|
89
90
|
xPathCacheLookup(expr: any): any;
|
|
90
|
-
xPathCollectDescendants(nodeList:
|
|
91
|
+
xPathCollectDescendants(nodeList: XNode[], node: XNode, opt_tagName?: string): void;
|
|
91
92
|
xPathCollectDescendantsReverse(nodeList: any, node: any): void;
|
|
92
|
-
|
|
93
|
+
/**
|
|
94
|
+
* Parses and then evaluates the given XPath expression in the given
|
|
95
|
+
* input context.
|
|
96
|
+
* @param select The xPath string.
|
|
97
|
+
* @param context The Expression Context.
|
|
98
|
+
* @returns A Node Value.
|
|
99
|
+
*/
|
|
100
|
+
xPathEval(select: string, context: ExprContext): NodeValue;
|
|
93
101
|
/**
|
|
94
102
|
* DGF - extract a tag name suitable for getElementsByTagName
|
|
95
103
|
*
|
|
@@ -99,7 +107,7 @@ export declare class XPath {
|
|
|
99
107
|
* non-element nodes. This can boost
|
|
100
108
|
* performance. This is false by default.
|
|
101
109
|
*/
|
|
102
|
-
xPathExtractTagNameFromNodeTest(nodeTest:
|
|
110
|
+
xPathExtractTagNameFromNodeTest(nodeTest: NodeTest, ignoreNonElementNodesForNTA: any): string;
|
|
103
111
|
xPathMatchStack(stack: any, pattern: any): any;
|
|
104
112
|
/**
|
|
105
113
|
* Finds the best rule for the XPath expression provided.
|
package/xpath/xpath.js
CHANGED
|
@@ -43,6 +43,7 @@ var expressions_1 = require("./expressions");
|
|
|
43
43
|
var tokens_1 = require("./tokens");
|
|
44
44
|
var xpath_grammar_rules_1 = require("./xpath-grammar-rules");
|
|
45
45
|
var node_tests_1 = require("./node-tests");
|
|
46
|
+
var constants_1 = require("../constants");
|
|
46
47
|
var XPath = /** @class */ (function () {
|
|
47
48
|
function XPath() {
|
|
48
49
|
// The productions of the grammar. Columns of the table:
|
|
@@ -353,7 +354,9 @@ var XPath = /** @class */ (function () {
|
|
|
353
354
|
return;
|
|
354
355
|
}
|
|
355
356
|
for (var n = node.firstChild; n; n = n.nextSibling) {
|
|
356
|
-
|
|
357
|
+
if (n.nodeType !== constants_1.DOM_ATTRIBUTE_NODE) {
|
|
358
|
+
nodeList.push(n);
|
|
359
|
+
}
|
|
357
360
|
this.xPathCollectDescendants(nodeList, n);
|
|
358
361
|
}
|
|
359
362
|
};
|
|
@@ -363,12 +366,17 @@ var XPath = /** @class */ (function () {
|
|
|
363
366
|
this.xPathCollectDescendantsReverse(nodeList, n);
|
|
364
367
|
}
|
|
365
368
|
};
|
|
366
|
-
|
|
367
|
-
|
|
369
|
+
/**
|
|
370
|
+
* Parses and then evaluates the given XPath expression in the given
|
|
371
|
+
* input context.
|
|
372
|
+
* @param select The xPath string.
|
|
373
|
+
* @param context The Expression Context.
|
|
374
|
+
* @returns A Node Value.
|
|
375
|
+
*/
|
|
368
376
|
XPath.prototype.xPathEval = function (select, context) {
|
|
369
|
-
var
|
|
370
|
-
var
|
|
371
|
-
return
|
|
377
|
+
var expression = this.xPathParse(select);
|
|
378
|
+
var response = expression.evaluate(context);
|
|
379
|
+
return response;
|
|
372
380
|
};
|
|
373
381
|
/**
|
|
374
382
|
* DGF - extract a tag name suitable for getElementsByTagName
|