c#中的Html白名单

本文关键字:名单 白名单 中的 Html | 更新日期: 2023-09-27 17:59:49

花了大约30分钟的时间在so身上寻找这个问题的最终解决方案。

这个问题似乎被问了很多次,但是。。。

  • 大多数解决方案都使用正则表达式
  • 有很多帖子说不应该使用正则表达式来处理html
  • 有很多答案只是简单地给出HTMLAgilityPack的链接(在Codeplex上),但没有关于如何使用该包来满足所述要求的真实例子

因此,我正在寻找满足以下要求的最佳解决方案。

  • 我想提供一个允许的HTML标记列表
  • 任何不在允许列表中的标记都应该连同它们的属性和内容一起删除
  • 允许列表中的任何标记都应保留属性和内容
  • 该解决方案应能应对不同的本地化——可能会使用英语以外的语言和字符集的用户
  • [添加]解决方案应该处理论坛帖子等文本,而不是完整的html页面,因此允许使用b u i等标签,但不允许使用脚本div等,应该删除这些标签

我正在寻找一个C#解决方案,如果最好使用RegEx,那么我很乐意这样做。如果有一个现有的库可以做到这一点,我也很乐意使用它们。如果可能的话,我会感谢一些示例代码。

我正在寻找一种明确的、久经考验的方法来解决这个问题,而不是广泛的辩论+封闭的帖子等:):)

提前谢谢。

c#中的Html白名单

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