2009-12-14 35 views
2

我有一個XHTML內容的項目數據庫,我想顯示項目的HTML剝離(完成),然後截斷每個項目到最大長度爲100個字符。如果字符串超過100個字符,我將其截斷並在末尾插入…(省略號)。用省略號截斷一個字符串,確保不要破壞任何HTML實體

問題是我的程序不理解字符串中已經有已經的HTML實體。例如。如果字符串是something & something,我的函數可能會將其截斷爲something &am...導致無效的XHTML

什麼是在ASP.NET/C#中去解決這個問題的最好方法?

回答

6

你可以使用HtmlDecode爲HTML實體轉換成普通字符串,然後截斷這個字符串,最後的結果編碼:

var decoded = HttpUtility.HtmlDecode(theEncodedString); 
decoded = Truncate(decoded); 
var result = HttpUtility.HtmlEncode(decoded); 
0

你可以使用正則表達式匹配任何一個HTML實體或單個字符,並重復到你想要的長度。例如:

^(&\w+;|.){,100}