你如何将 Html 转换为纯文本?

新手上路,请多包涵

我将 Html 片段存储在一个表中。 不是整个页面,没有标签等,只是基本格式。

我希望能够在给定页面上将该 Html 显示为纯文本, _无格式_(实际上只是前 30 - 50 个字符,但这很容易)。

如何将该 Html 中的“文本”作为纯文本放入字符串中?

所以这段代码。

 <b>Hello World.</b><br/><p><i>Is there anyone out there?</i><p>

变成:

你好世界。有没有人在那里?

原文由 Stuart Helwig 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 840
2 个回答

如果您谈论的是标签剥离,那么如果您不必担心诸如 <script> 标签之类的事情,它就相对简单了。如果您需要做的只是显示不带标签的文本,您可以使用正则表达式来完成:

 <[^>]*>

如果您确实需要担心 <script> 标记等,那么您将需要比正则表达式更强大的东西,因为您需要跟踪状态,更像是上下文无关语法 (CFG)。尽管您可以通过“从左到右”或非贪婪匹配来完成它。

如果你可以使用正则表达式,那么有很多网页提供了很好的信息:

如果您需要 CFG 的更复杂行为,我建议您使用第三方工具,遗憾的是我不知道有什么好工具可以推荐。

原文由 vfilby 发布,翻译遵循 CC BY-SA 2.5 许可协议

麻省理工学院许可的 HtmlAgilityPack 在其示例之一中 包含一种将 HTML 转换为纯文本的方法。

 var plainText = HtmlUtilities.ConvertToPlainText(string html);

给它一个 HTML 字符串,比如

<b>hello, <i>world!</i></b>

你会得到一个纯文本结果,如:

 hello world!

原文由 Judah Gabriel Himango 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题