c#中的html白名单

Rem*_*tec 5 html c# regex whitelist blacklist

花了大约30分钟左右的SO寻找这个问题的最终解决方案.

这个问题似乎已被问过很多次但是......

  • 大多数解决方案使用正则表
  • 有很多帖子说不应该使用常规表达来处理html.
  • 有很多答案只是提供HTMLAgilityPack(在Codeplex上)的链接,但没有关于如何使用此包来满足规定要求的真实示例.

所以我正在寻找满足以下要求的最佳解决方案.

  • 我想提供一个允许的HTML标签列表.
  • 应删除不在允许列表中的任何标记及其属性和内容.
  • 应使用属性和内容保留允许列表中的任何标记.
  • 解决方案应该处理不同的本地化 - 使用除英语之外的语言和字符集的用户是可能的.
  • [已添加]解决方案应该处理文本,例如论坛帖子而不是完整的html页面 - 因此允许使用bui等标签,但不允许脚本div等,应该删除.

我正在寻找一个C#解决方案,如果它最好使用RegEx,那么我很乐意这样做.如果现有的库可以执行此操作,我也很乐意使用它们.我会很感激一些示例代码.

我正在寻找一个确定的,经过试验和测试的解决这个问题的方法,而不是广泛的辩论+封闭的帖子等:) :)

提前致谢.

Mat*_*ias 1

您可以使用Html Agility Pack来解析 HTML。然后,您可以按照您喜欢的方式处理这些元素,并将其再次写回 HTML。