2

我有一个包含 XHTML 内容的项目数据库,我想显示这些项目的 HTML 被剥离(完成),然后将每个项目截断为最大长度 100 个字符。如果字符串超过 100 个字符,我将其切断并…在末尾插入(省略号)。

问题是我的程序不理解字符串中已经存在的 HTML 实体。例如,如果字符串是something & something,我的函数可能会截断它,something &am...从而导致无效的 XHTML

在 ASP.NET/C# 中解决此问题的最佳方法是什么?

4

2 回答 2

7

您可以使用HtmlDecode将 html 实体转换为普通字符串,然后截断此字符串并最终对结果进行编码:

var decoded = HttpUtility.HtmlDecode(theEncodedString);
decoded = Truncate(decoded);
var result = HttpUtility.HtmlEncode(decoded);
于 2009-12-14T08:46:42.570 回答
0

您可以使用正则表达式来匹配 HTML 实体或单个字符,并重复到您想要的长度。就像是:

^(&\w+;|.){,100}
于 2009-12-14T08:55:35.457 回答