示例#1
0
        /// <inheritdoc />
        public override void Process(BotData data)
        {
            base.Process(data);

            var original = ReplaceValues(parseTarget, data);
            var list     = new List <string>();

            // Parse the value
            switch (Type)
            {
            case ParseType.LR:
                list = Parse.LR(original, ReplaceValues(leftString, data), ReplaceValues(rightString, data), recursive, useRegexLR).ToList();
                break;

            case ParseType.CSS:
                list = Parse.CSS(original, ReplaceValues(cssSelector, data), ReplaceValues(attributeName, data), cssElementIndex, recursive).ToList();
                break;

            case ParseType.JSON:
                list = Parse.JSON(original, ReplaceValues(jsonField, data), recursive, jTokenParsing).ToList();
                break;

            case ParseType.XPATH:
                throw new NotImplementedException("XPATH parsing is not implemented yet");

            case ParseType.REGEX:
                list = Parse.REGEX(original, ReplaceValues(regexString, data), ReplaceValues(regexOutput, data), recursive).ToList();
                break;
            }

            InsertVariable(data, isCapture, recursive, list, variableName, prefix, suffix, encodeOutput, createEmpty);
        }
示例#2
0
        /// <inheritdoc />
        public override void Process(BotData data)
        {
            base.Process(data);

            var original = ReplaceValues(parseTarget, data);
            var list     = new List <string>();

            // Parse the value
            switch (Type)
            {
            case ParseType.LR:
                list = Parse.LR(original, ReplaceValues(leftString, data), ReplaceValues(rightString, data), recursive, useRegexLR).ToList();
                break;

            case ParseType.CSS:
                list = Parse.CSS(original, ReplaceValues(cssSelector, data), ReplaceValues(attributeName, data), cssElementIndex, recursive).ToList();
                break;

            case ParseType.JSON:
                list = Parse.JSON(original, ReplaceValues(jsonField, data), recursive, jTokenParsing).ToList();
                break;

            case ParseType.XPATH:
                throw new NotImplementedException("XPATH parsing is not implemented yet");

            case ParseType.REGEX:
                RegexOptions regexOptions = new RegexOptions();
                if (dotMatches)
                {
                    regexOptions |= RegexOptions.Singleline;
                }
                if (caseSensitive == false)
                {
                    regexOptions |= RegexOptions.IgnoreCase;
                }
                list = Parse.REGEX(original, ReplaceValues(regexString, data), ReplaceValues(regexOutput, data), recursive, regexOptions).ToList();
                if (IndexOutputList > -1 && Recursive)
                {
                    try
                    {
                        var str = list[IndexOutputList];
                        list = new List <string>()
                        {
                            str
                        };
                    }
                    catch { }
                }
                break;
            }

            InsertVariable(data, isCapture, recursive, list, variableName, prefix, suffix, encodeOutput, createEmpty);
        }