HtmlAgilityPack

using System.Linq;
using System.Text;
using HtmlAgilityPack;
namespace HtmlDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            string filePath = AppDomain.CurrentDomain.BaseDirectory + "no.htm";
            var doc = new HtmlDocument();
            Encoding encoder = Encoding.GetEncoding("utf-8");
            doc.Load(filePath, encoder);

            //rect 框架

            //string Html=string.Empty;
            //foreach()
            //{
            //    Html+=string.Format("",1);
            //}

            //page
            //title             //HtmlNodeCollection titleNodes = doc.DocumentNode.SelectNodes("//title");
            //description

            //解析控件
            //HtmlNodeCollection inputNodes = doc.DocumentNode.SelectNodes("//input[@type='text']");
            //HtmlNodeCollection textareaNodes = doc.DocumentNode.SelectNodes("//textarea");
            //HtmlNodeCollection selectNodes = doc.DocumentNode.SelectNodes("//select");


            //解析tables
            gettables(doc);


        }
        static List<TemplateTable> gettables(HtmlDocument doc)
        {
            List<TemplateTable> tttables = null;
            TemplateTable tttable = null;
            //查找节点
            HtmlNodeCollection titleNodes = doc.DocumentNode.SelectNodes("//table");
            if (titleNodes != null)
            {
                tttables = new List<TemplateTable>();
                foreach (var item in titleNodes)
                {
                    tttable = SplitTable(item);
                    if (tttable != null)
                    {
                        tttables.Add(tttable);
                    }
                }
            }
            return tttables;
        }
        static TemplateTable SplitTable(HtmlNode table)
        {
            TemplateTable tb = null;
            Columns citem = null;
            //查找th节点
            HtmlNodeCollection titleNodes = table.SelectNodes("//th");
            if (titleNodes != null)
            {
                tb = new TemplateTable();

                tb.Cols = new List<Columns>();
                citem = new Columns();
                foreach (var item in titleNodes)
                {
                    citem = new Columns();
                    citem.ColumnName = ClearText(item.InnerText);
                    tb.TableName = tb.TableName + "-" + citem.ColumnName;
                    tb.Cols.Add(citem);
                }
            }
            return tb;
        }
        static string ClearText(string text)
        {
            text = text.Replace("\r\n", string.Empty);
            return text.Trim();
        }
    }
    public class TemplateTable
    {
        public string TableName { get; set; }
        public string TableDes { get; set; }
        public List<Columns> Cols { get; set; }
    }
    public class Columns
    {
        public string ColumnName { get; set; }
        public int ColumnDes { get; set; }
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值