因为用到了一款编辑器的原因,使得数据库中保存的数据会夹杂着一些HTML标签,之后导出的数据中就会出现一些不同的HTML的标签。严重影响用户的视觉体验(主要自己都看不下去了)。。。

下面是我将DataTable进行重新组装,清除HTML标签的方法:

         /// <summary>
/// 重新组装DataTable(主要是为了清除DataTable数据中的HTML标签)
/// </summary>
/// <param name="new_dt">DataTable</param>
/// <param name="parms">列名(可以是多个列),如"name","age"</param>
/// <returns>组装后的DataTable</returns>
public DataTable GetNewTable(DataTable new_dt, params object[] parms)
{
Func<object, string> fnClearHtml = (object obj) =>//清除HTML标签函数
{
var HtmlStr = obj + "";
//删除脚本
HtmlStr = HtmlStr.Replace("\r\n", "");
HtmlStr = Regex.Replace(HtmlStr, @"<script.*?</script>", "", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"<style.*?</style>", "", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"<.*?>", "", RegexOptions.IgnoreCase);
//删除HTML
HtmlStr = Regex.Replace(HtmlStr, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"-->", "", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"<!--.*", "", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"&(nbsp|#160);", "", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
HtmlStr = Regex.Replace(HtmlStr, @"&#(\d+);", "", RegexOptions.IgnoreCase);
HtmlStr = HtmlStr.Replace("<", "");
HtmlStr = HtmlStr.Replace(">", "");
HtmlStr = HtmlStr.Replace("\r\n", "");
HtmlStr = HttpContext.Current.Server.HtmlEncode(HtmlStr).Trim();
return HtmlStr;
};
if (new_dt != null)
{
foreach (var p in parms)
{
var pp = p + "";
new_dt.Columns.Add(p + "", typeof(string));
foreach (DataRow dr in new_dt.Rows)
dr[p + ""] = fnClearHtml(dr[pp]); new_dt.Columns.Remove(pp);
new_dt.Columns[p + ""].ColumnName = pp;
}
}
return new_dt;
}

  其中fnClearHtml函数就是专门清除HTML标签的函数,但是小主在写下面删除列的时候发现 new_dt.Columns.Remove(pp)这句代码只是删除该列的数据以及该列的名字,这个列还会以Column1或Column2等其他的名称出现,列的总数还是那么多。。。

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

  小主感激不尽。。。。

C#怎么清除字符串中HTML标签。。。的更多相关文章

  1. js去除字符串中的标签

    var str="<p>js去除字符串中的标签</p>"; var result=str.replace(/<.*?>/ig,"&qu ...

  2. .NET获取Html字符串中指定标签的指定属性的值

    using System.Text; using System.Text.RegularExpressions; //以上为要用到的命名空间 /// <summary> /// 获取Htm ...

  3. [Python正则表达式] 字符串中xml标签的匹配

    现在有一个需求,比如给定如下数据: 0-0-0 0:0:0 #### the 68th annual golden globe awards #### the king s speech earns ...

  4. 获取字符串中img标签的url集合(转载)

    /// <summary> /// 获取字符串中img的url集合 /// </summary> /// <param name="content"& ...

  5. python清除字符串中无用字符

    将列表val_list中包含的非法字符去掉,illegal_char是非法字符列表 def clear(): illegal_char = [' ','#','%','_','@'] tmp_list ...

  6. php读取出字符串中的img标签中的图片路径

    php读取出字符串中的img标签中的图片路径 $pageContents = '字符串,带img标签'; $pageContents = str_replace('\"','"', ...

  7. PHP & Javascript 如何对字符串中包含html标签进行编码 整理

    为什么要对字符串编码? 某些字符串中包含html标签,不编码,页面输出就乱了. PHP下怎么对字符串编码? htmlentities vs htmlspecialchars htmlentities ...

  8. 正则匹配去掉字符串中的html标签

    1.得到超链接中的链接地址: string matchString = @"<a[^>]+href=\s*(?:'(?<href>[^']+)'|"&quo ...

  9. js去除字符串中所有html标签及&nbsp符号

    近日在做项目的时候,经常会在页面上处理一些数据.结果发现自己js掌握的并不是很好.那就在这里记录js的点点滴滴吧. 1. 去除字符串中的 html 标签 function delHtmlTag(str ...

随机推荐

  1. 团体程序设计天梯赛-练习集-L1-030. 一帮一

    L1-030. 一帮一 “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后, ...

  2. vue http请求 vue自带的 vue-resource

    vue-resource安装 npm install vue-resource --save-dev 配置 在main.js中引入插件 //Resource 为自定义名 vue-resource 为插 ...

  3. Vue push() pop() shift() unshift() splice() sort() reverse() ...

    Vue 变异方法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. pop() 方法用于删除并返回数组的最后一个元素. shift() 方法用于把数组的第一个元素从其中删除,并返回 ...

  4. 为类型定义取别名、环境变量、静态库与动态库(day03)

    一.为类型命名别名 struct node{ int num; struct node *next; }; typedef struct node node_t; node_t n; 使用typede ...

  5. 用 Vue 做一个简单的购物app

    前言 最近在学习Vue的使用.看了官方文档之后,感觉挺有意思的.于是着手做了一个简单的购物app.h5 与原生 app 交互的原理这是我第一次在这个网站上写分享,如有不当之处,请多多指教. 一整个项目 ...

  6. 【4】Django 创建第一个模块应用

    大成若缺,其用不弊.大盈若冲,其用不穷.大直若屈.大巧若拙.大辩若讷.静胜躁,寒胜热.清静为天下正 --老子<道德经> 本章内容 创建应用(app) 开发第一个视图(View) URL访问 ...

  7. Ali-Tomcat在eclipse多开的解决方法

    关于如何在eclipse配置Ali-Tomcat https://help.aliyun.com/document_detail/99410.html?spm=a2c4g.11186623.6.609 ...

  8. xe7android调用webservice

    1.如果用的roservice,那么用builder打开rodl然后直接生成wsdl保存: 2.由系统IDE的Component中调用import WSDL后save as. 3.调用代码: HTTP ...

  9. mysql优化sql语句

    mysql优化sql语句   常见误区   www.2cto.com   误区1:   count(1)和count(primary_key) 优于 count(*)   很多人为了统计记录条数,就使 ...

  10. WordPress 在Ubuntu下安装插件、主题输入FTP及无法创建目录的问题

    1.安装新主题.插件需要输入FTP的账户密码 如果不想输入的话可以使用在wp-config.php文件中添加脚本方式. define("FS_METHOD","direc ...