/// <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); }
/// <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); }