Html网页源码,删除元素之间空格等冗余字符
说下,为何要删除html源代码的元素之间的空格或换行等冗余字符串,
主要是方便后面对网页源代码中使用正则表达式抽取各种规则的资源文件或链接或其他标签做好准备工作。
using System.Text.RegularExpressions; //正则表达式
/// <summary>
/// 将html源代码元素之间“\t” "\r\n" “空格字符” 删除
/// </summary>
public static void ClearHtmlCode()
{
int imgNum = 0;
string str_html_code = @"
<a href=""http://www.kandian5.com/yingshi/dianying/"" title="""">电影资讯</a>
/// <summary>
/// 将html源代码元素之间“\t” "\r\n" “空格字符” 删除
/// </summary>
public static void ClearHtmlCode()
{
int imgNum = 0;
string str_html_code = @"
<a href=""http://www.kandian5.com/yingshi/dianying/"" title="""">电影资讯</a>
<a href=""http://www.kandian5.com/yingshi/dianshi/"" title="""">电视资讯</a>
<a href=""http://www.kandian5.com/yingshi/yinyue/"" title="""">音乐资讯</a>
<a href=""http://www.kandian5.com/yingshi/zongyi/"" title="""">综艺资讯</a>
<a href=""http://www.kandian5.com/yingshi/chuanbang/"" title="""">穿帮吐槽</a>
<a href=""http://www.kandian5.com/yingshi/yugao/"" title="""">新片预告</a>";
// >{1}* 表示>的字符,数目为1个
// [\r\n]* 表示\r\n的短语,数目为0或n个
// [^><]* 表示非>或非<的任意字符,数目为0或n个
// 将html元素之间“\t” "\r\n" “空格字符” 删除
Regex reg = new Regex(">{1}[\r\n]*[^><]*\t*[^><]* *[^><]*<{1}".ToUpper(), RegexOptions.IgnoreCase);
// [\r\n]* 表示\r\n的短语,数目为0或n个
// [^><]* 表示非>或非<的任意字符,数目为0或n个
// 将html元素之间“\t” "\r\n" “空格字符” 删除
Regex reg = new Regex(">{1}[\r\n]*[^><]*\t*[^><]* *[^><]*<{1}".ToUpper(), RegexOptions.IgnoreCase);
MatchCollection match_lst = reg.Matches(str_html_code, 0);
imgNum = match_lst.Count;
string str_tmp = "";
foreach (Match item in match_lst)
{
str_tmp = item.ToString();
Console.WriteLine(str_tmp + "\r\n");
str_html_code = str_html_code.Replace(str_tmp, str_tmp.Replace(" ", "").Replace("\r\n", "").Replace("\t", "")); // 将html元素之间“\r\n”等冗余字符 删除
}
imgNum = match_lst.Count;
string str_tmp = "";
foreach (Match item in match_lst)
{
str_tmp = item.ToString();
Console.WriteLine(str_tmp + "\r\n");
str_html_code = str_html_code.Replace(str_tmp, str_tmp.Replace(" ", "").Replace("\r\n", "").Replace("\t", "")); // 将html元素之间“\r\n”等冗余字符 删除
}
Console.WriteLine(str_html_code);
Console.ReadLine();
}
Console.ReadLine();
}