首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

WebBrowser怎么过滤掉html代码里的网页背景、文字大小、颜色等代码,只显示最基本的文字内容

2013-05-02 
WebBrowser如何过滤掉html代码里的网页背景、文字大小、颜色等代码,只显示最基本的文字内容我窗体上有两个We

WebBrowser如何过滤掉html代码里的网页背景、文字大小、颜色等代码,只显示最基本的文字内容
我窗体上有两个WebBrowser控件,分别名为WebBrowser1和WebBrowser2。WebBrowser1里显示了一个html内容(有文字和图片),现在希望WebBrowser2里显示的内容和WebBrowser1是一样的,但要去掉WebBrowser1里一些格式(比如html代码里的一些设置网页背景、文字大小、颜色、样式等……)。请问有何简单的方法实现?也就是说我只希望得到文字和图片内容,不要背景和颜色设置之类的,那么该如何自动过滤掉这些html代码呢?
[解决办法]
参考


 #region/// 过滤html,js,css代码
         /// <summary>
        /// 过滤html,js,css代码
         /// </summary>
        /// <param name="html">参数传入</param>
        /// <returns></returns>
        public static string CheckStr(string html)
        {
            System.Text.RegularExpressions.Regex regex1 = new System.Text.RegularExpressions.Regex(@"<script[\s\S]+</script *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex2 = new System.Text.RegularExpressions.Regex(@" href *= *[\s\S]*script *:", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex3 = new System.Text.RegularExpressions.Regex(@" no[\s\S]*=", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex4 = new System.Text.RegularExpressions.Regex(@"<iframe[\s\S]+</iframe *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex5 = new System.Text.RegularExpressions.Regex(@"<frameset[\s\S]+</frameset *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex6 = new System.Text.RegularExpressions.Regex(@"\<img[^\>]+\>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex7 = new System.Text.RegularExpressions.Regex(@"</p>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex8 = new System.Text.RegularExpressions.Regex(@"<p>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex regex9 = new System.Text.RegularExpressions.Regex(@"<[^>]*>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            html = regex1.Replace(html, ""); //过滤<script></script>标记
            html = regex2.Replace(html, ""); //过滤href=javascript: (<A>) 属性
            html = regex3.Replace(html, " _disibledevent="); //过滤其它控件的on...事件


            html = regex4.Replace(html, ""); //过滤iframe
            html = regex5.Replace(html, ""); //过滤frameset
            html = regex6.Replace(html, ""); //过滤frameset
            html = regex7.Replace(html, ""); //过滤frameset
            html = regex8.Replace(html, ""); //过滤frameset
            html = regex9.Replace(html, "");
            html = html.Replace(" ", "");
            html = html.Replace("</strong>", "");
            html = html.Replace("<strong>", "");
            return html;
        }
        #endregion
#region /// 过滤p /p代码
        /// <summary>
       /// 过滤p /p代码
        /// </summary>
       /// <param name="html">参数传入</param>
       /// <returns></returns>
        public static string InputStr(string html)
        {
            html = html.Replace(@"\<img[^\>]+\>", "");
            html = html.Replace(@"<p>", "");
            html = html.Replace(@"</p>", "");
            return html;
        }
        #endregion


[解决办法]
网页中文字样式受很多因素影响.大概有以下几种
1.html页面的css样式表中可以定义文字的样式
2.body的样式中也可以定义文字样式
3.<span><div>等等标签都可以定义文字样式.

用正规则去掉所有样式,然后用 
WebBrowser1.Document.Body.Style = "font-size:12px;"
设置就可以的

热点排行