webBrowser控件获得html的table数据,包括Iframe
本文章主要是讲WebBrowser控件,获得html里面table的数据。
先下载一个mshtml.dll
主要逻辑如下:
 //得到table的对象
            IHTMLDocument2 document = webBrowser1.Document.DomDocument as IHTMLDocument2;
            IHTMLElementCollection tables = (IHTMLElementCollection)document.all.tags("TABLE");
            if (tables.item() == null)
            {
                //根据franme的name得到对象
                HtmlDocument htmlDoc = webBrowser1.Document;
                htmlDoc = webBrowser1.Document.Window.Frames["frmRpt"].Document;
                string frameHtml = webBrowser1.Document.Window.Frames["frmRpt"].Document.Body.InnerHtml;
                //得到所有的franme对象
                HTMLDocument doc = (HTMLDocument)webBrowser1.Document.DomDocument;
                object j;
                for (int i = 0; i < doc.parentWindow.frames.length; i++)
                {
                    j = i;
                    HTMLWindow2 frame = doc.parentWindow.frames.item(ref j) as HTMLWindow2;
                    //if (frame.name == "frmRpt")
                    //{
                        IHTMLElementCollection tabless = (IHTMLElementCollection)frame.document.all.tags("TABLE");
                        if (tabless.item() != null)
                        {
                            foreach (IHTMLTable table in tabless)
                            {
                                IHTMLElementCollection tts = table.rows;//因为TH标签是属于表格的表头信息;
                                foreach (IHTMLElement th in tts)
                                {
                                    foreach (IHTMLElement td in th.children)
                                    {
                                        string ts = td.innerHTML;
                                    }
                                }
                            }
                       // }
                    }
                }
            }
            else
            {
                foreach (IHTMLTable table in tables)
                {
                    IHTMLElementCollection tts = table.rows;//因为TH标签是属于表格的表头信息;
                    foreach (IHTMLElement th in tts)
                    {
                        foreach (IHTMLElement td in th.children)
                        {
                            string ts = td.innerHTML;
                        }
                    }
                }
            }
                    
                
                
            
        
浙公网安备 33010602011771号