public override NodeQueryResult EvaluateSingle(NodeQueryDefinition query, NodeQueryEvaluationContext context) { Log(query); Regex regex = new Regex(query.query); NodeQueryResult output = new NodeQueryResult(); output.ResultEvaluation = regex.IsMatch(context.documentUrl); Log(output); return(output); }
public void Log(NodeQueryDefinition query) { if (logger != null) { logger.AppendLine("Query:"); logger.nextTabLevel(); logger.AppendLine(query.ToString()); logger.prevTabLevel(); //Log("----- query ----------"); } }
public override NodeQueryResult EvaluateSingle(NodeQueryDefinition query, NodeQueryEvaluationContext context) { //var p = context.htmlDocument.DocumentNode.XPath; Log(query); var nodes = context.htmlNodes.SelectNodes(query.query); NodeQueryResult output = new NodeQueryResult(); if (nodes != null) { output.ResultNodes.AddRange(nodes); } output.ResultEvaluation = output.ResultNodes.Any(); Log(output); return(output); }
public override NodeQueryResult EvaluateSingle(NodeQueryDefinition query, NodeQueryEvaluationContext context) { Log(query); var indexList = imbSCI.Core.extensions.text.imbStringCommonTools.rangeStringToIndexList(query.query, context.htmlNodes.Count); NodeQueryResult output = new NodeQueryResult(); foreach (Int32 i in indexList) { if (i < context.htmlNodes.Count) { output.ResultNodes.Add(context.htmlNodes[i]); } } output.ResultEvaluation = output.ResultNodes.Any(); Log(output); return(output); }
public abstract NodeQueryResult EvaluateSingle(NodeQueryDefinition query, NodeQueryEvaluationContext context);
// public DataPointMapperResult DPMapperResult { get; set; } public NodeQueryDefinition GetQueryDefinition() { NodeQueryDefinition output = new NodeQueryDefinition(); //if (RootNode != null) //{ // var xpathSelector = RootNode.FindSelector(); // var xq = new NodeQueryDefinition() // { // query = xpathSelector.ToString(), // queryType = NodeQuery.Enums.NodeQueryType.xpath, // operand = NodeQuery.Enums.NodeQueryPredicateOperand.AND // }; // return xq; //} NodeQueryDefinition q = new NodeQueryDefinition() { query = XPathRoot, queryType = NodeQuery.Enums.NodeQueryType.xpath, operand = NodeQuery.Enums.NodeQueryPredicateOperand.AND }; output.groupQueries.Add(q); /* * if (!Class.isNullOrEmpty()) * { * NodeQueryDefinition classQ = new NodeQueryDefinition() * { * query = "//" + NodeName + "[@class='" + Class + "']", * queryType = NodeQuery.Enums.NodeQueryType.xpath, * operand = NodeQuery.Enums.NodeQueryPredicateOperand.AND, * resultOperand = NodeQuery.Enums.NodeQueryResultOperand.OVERLAP * }; * output.groupQueries.Add(classQ); * }*/ if (!ID.isNullOrEmpty()) { NodeQueryDefinition qID = new NodeQueryDefinition() { query = "//" + NodeName + "[@id='" + ID + "']", queryType = NodeQuery.Enums.NodeQueryType.xpath, operand = NodeQuery.Enums.NodeQueryPredicateOperand.AND, resultOperand = NodeQuery.Enums.NodeQueryResultOperand.OVERLAP }; output.groupQueries.Add(qID); } //if (output.groupQueries.Count == 0) //{ //} return(output); }