Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    /// <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);
    }