一尘不染

如何从ASP.NET中的字符串中删除HTML标签?

c#

使用ASP.NET,如何可靠地剥离给定字符串中的HTML标签(即不使用正则表达式)?我正在寻找类似PHP的东西strip_tags

例:

<ul><li>Hello</li></ul>

输出:

“你好”

我正在努力不重新发明轮子,但是到目前为止,我还没有找到任何满足我需求的东西。


阅读 326

收藏
2020-05-19

共1个答案

一尘不染

如果只是从字符串中剥离 所有 HTML标记,那么这也可以与regex一起 可靠地 工作。更换:

<[^>]*(>|$)

与空字符串,全局。不要忘了之后将字符串标准化,替换为:

[\s\r\n]+

与单个空格,并修剪结果。(可选)将所有HTML字符实体替换回实际字符​​。

注意事项

  1. 有一个限制:HTML和XML允许>使用属性值。当遇到这样的值时,此解决方案 返回损坏的标记。
  2. 该解决方案在技术上是安全的,如下所示:结果永远不会包含任何可用于跨站点脚本编写或破坏页面布局的内容。只是不是很干净。
  3. 与所有HTML和regex一样: 如果必须在所有情况下 正确
    使用它,请使用 适当的解析器
2020-05-19