C#怎麼清除字串中HTML標籤。。。

來源:互聯網
上載者:User

標籤:var   class   server   刪除   字串   serve   使用者   code   ble   

  因為用到了一款編輯器的原因,使得資料庫中儲存的資料會夾雜著一些HTML標籤,之後匯出的資料中就會出現一些不同的HTML的標籤。嚴重影響使用者的視覺體驗(主要自己都看不下去了)。。。

下面是我將DataTable進行重新組裝,清除HTML標籤的方法:

 1         /// <summary> 2         /// 重新組裝DataTable(主要是為了清除DataTable資料中的HTML標籤) 3         /// </summary> 4         /// <param name="new_dt">DataTable</param> 5         /// <param name="parms">列名(可以是多個列),如"name","age"</param> 6         /// <returns>組裝後的DataTable</returns> 7         public DataTable GetNewTable(DataTable new_dt, params object[] parms) 8         { 9             Func<object, string> fnClearHtml = (object obj) =>//清除HTML標籤函數10             {11                 var HtmlStr = obj + "";12                 //刪除指令碼13                 HtmlStr = HtmlStr.Replace("\r\n", "");14                 HtmlStr = Regex.Replace(HtmlStr, @"<script.*?</script>", "", RegexOptions.IgnoreCase);15                 HtmlStr = Regex.Replace(HtmlStr, @"<style.*?</style>", "", RegexOptions.IgnoreCase);16                 HtmlStr = Regex.Replace(HtmlStr, @"<.*?>", "", RegexOptions.IgnoreCase);17                 //刪除HTML18                 HtmlStr = Regex.Replace(HtmlStr, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);19                 HtmlStr = Regex.Replace(HtmlStr, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);20                 HtmlStr = Regex.Replace(HtmlStr, @"-->", "", RegexOptions.IgnoreCase);21                 HtmlStr = Regex.Replace(HtmlStr, @"<!--.*", "", RegexOptions.IgnoreCase);22                 HtmlStr = Regex.Replace(HtmlStr, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);23                 HtmlStr = Regex.Replace(HtmlStr, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);24                 HtmlStr = Regex.Replace(HtmlStr, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);25                 HtmlStr = Regex.Replace(HtmlStr, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);26                 HtmlStr = Regex.Replace(HtmlStr, @"&(nbsp|#160);", "", RegexOptions.IgnoreCase);27                 HtmlStr = Regex.Replace(HtmlStr, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);28                 HtmlStr = Regex.Replace(HtmlStr, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);29                 HtmlStr = Regex.Replace(HtmlStr, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);30                 HtmlStr = Regex.Replace(HtmlStr, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);31                 HtmlStr = Regex.Replace(HtmlStr, @"&#(\d+);", "", RegexOptions.IgnoreCase);32                 HtmlStr = HtmlStr.Replace("<", "");33                 HtmlStr = HtmlStr.Replace(">", "");34                 HtmlStr = HtmlStr.Replace("\r\n", "");35                 HtmlStr = HttpContext.Current.Server.HtmlEncode(HtmlStr).Trim();36                 return HtmlStr;37             };38             if (new_dt != null)39             {40                 foreach (var p in parms)41                 {42                     var pp = p + "";43                     new_dt.Columns.Add(p + "1", typeof(string));44                     foreach (DataRow dr in new_dt.Rows)45                         dr[p + "1"] = fnClearHtml(dr[pp]);46 47                     new_dt.Columns.Remove(pp);48                     new_dt.Columns[p + "1"].ColumnName = pp;49                 }50             }51             return new_dt;52         }

  其中fnClearHtml函數就是專門清除HTML標籤的函數,但是小主在寫下面刪除列的時候發現 new_dt.Columns.Remove(pp)這句代碼只是刪除該列的資料以及該列的名字,這個列還會以Column1或Column2等其他的名稱出現,列的總數還是那麼多。。。

  希望看到小主文言文的大神,能給小主一些解答。

  小主感激不盡。。。。

C#怎麼清除字串中HTML標籤。。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.