List <struStockChange> ExtractFromTableByContent() { var stockchangelist = new List <struStockChange>(); var rule = new TableSearchContentRule(); rule.Content = new string[] { "集中竞价交易", "竞价交易", "大宗交易", "约定式购回" }.ToList(); rule.IsContentEq = true; var result = HTMLTable.GetMultiRowsByContentRule(root, rule); foreach (var item in result) { //TODO:具体逻辑代码 } return(stockchangelist); }
/// <summary> /// 获得符合规则的行数据 /// </summary> /// <param name="root"></param> /// <param name="rule"></param> /// <returns></returns> public static List <List <CellInfo> > GetMultiRowsByContentRule(HTMLEngine.MyRootHtmlNode root, TableSearchContentRule rule) { var Container = new List <List <CellInfo> >(); for (int tableNo = 1; tableNo <= root.TableList.Count; tableNo++) { var table = new HTMLTable(root.TableList[tableNo]); var RowHeader = table.GetRow(1); for (int RowNo = 1; RowNo < table.RowCount; RowNo++) { var row = table.GetRow(RowNo); var IsMatch = false; foreach (var cell in row) { if (rule.Content != null) { foreach (var content in rule.Content) { if (rule.IsContentEq) { //相等模式 if (content.Equals(cell.Replace(" ", ""))) { Container.Add(ConvertRowToCellInfo(row, tableNo, RowNo, RowHeader)); IsMatch = true; break; } } else { //包含模式 if (content.Contains(cell.Replace(" ", ""))) { Container.Add(ConvertRowToCellInfo(row, tableNo, RowNo, RowHeader)); IsMatch = true; break; } } } } if (IsMatch) { break; } } } } return(Container); }