如何在C#中删除html标签

时间:2010-02-25 14:55:43

标签: c# .net html

  

可能重复:
  How to clean HTML tags using C#

在C#中删除HTML标记的最佳方法是什么?

3 个答案:

答案 0 :(得分:21)

  public static string StripHTML(string htmlString)
  {

     string pattern = @"<(.|\n)*?>";

     return Regex.Replace(htmlString, pattern, string.Empty);
  }

答案 1 :(得分:7)

获取HTML字符串或文档,并使用HTML Agility Pack进行解析。这将为您提供一个与XmlDocument非常相似的HTMLDocument对象。

然后,您可以使用SelectNodes等方法访问您感兴趣的文档部分。

如果您选择使用其他方法,请注意使用正则表达式解析HTML(非常规语言)被广泛视为a bad idea

无论采用何种方法,如果要保留一些标记,请使用白名单方法。这意味着删除所有未明确需要的内容。

答案 2 :(得分:1)

要确保没有HTML标记通过,请使用:HttpServerUtility.HtmlEncode(string);

如果您希望某些通过,可以使用此"Whitelist" approach

更新:该代码中存在一些漏洞;作为Developer from Fog Creek tells us

(第二个链接包括代码)。