5

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

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

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

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

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

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

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

提前致谢。

4

1 回答 1

1

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

于 2011-06-22T08:42:24.013 回答