我的SQL数据库中有很多用户发表的文章,都包含HTML代码的数据.
我现在想通过一个方法把每篇文章的前300个字符提取出来,以致在一页面中显示多篇文章的主要内容,同时也保留原来文章的显示格式.
但在过程中,我遇到了以下问题:
我并不想打断HTML代码,如<TABLE></TABLE>只提取了一半<TABLE>,那么这样的话,就会影响我网页框架的布局,HTML代码中什么都包含,如IMG,TABLE,OBJECT...如果一当没有成对的提取这些HTML标识的话,我后面的布局就完全被打乱了.
请问大家有什么好的方法?
我现在想通过一个方法把每篇文章的前300个字符提取出来,以致在一页面中显示多篇文章的主要内容,同时也保留原来文章的显示格式.
但在过程中,我遇到了以下问题:
我并不想打断HTML代码,如<TABLE></TABLE>只提取了一半<TABLE>,那么这样的话,就会影响我网页框架的布局,HTML代码中什么都包含,如IMG,TABLE,OBJECT...如果一当没有成对的提取这些HTML标识的话,我后面的布局就完全被打乱了.
请问大家有什么好的方法?
/// 过滤字符串中非文字字符
/// </summary>
/// <param name="HtmlStr">要过滤的字符</param>
/// <returns>返回过滤后的字符</returns>
public static string FiterHTML(string HtmlStr)
{
System.Text.RegularExpressions.Regex objReg = new System.Text.RegularExpressions.Regex(@"<[\s\S]*?>",
System.Text.RegularExpressions.RegexOptions.Multiline);
int i = 0;
while (objReg.IsMatch(HtmlStr, 0) && i < HtmlStr.Length)
{
HtmlStr = objReg.Replace(HtmlStr, ""); i++;
}
return HtmlStr;
}过滤掉HTML的标签,然后用SubString