"这篇文档介绍的是如何在C#中去除文字中的HTML标签,提供了一种方法来清理HTML字符串,使其仅保留纯文本内容。" 在处理网页内容或从网页抓取数据时,我们经常会遇到需要从HTML代码中提取纯文本的情况。这个过程被称为“去除HTML标签”或“HTML去噪”。C# 提供了一些方法来实现这个功能,如在提供的代码段中所示。 在给定的代码中,定义了一个名为`ClearHtml`的方法,它接受一个名为`Content`的字符串参数,该参数包含HTML文本。这个方法通过多次调用`Zxj_ReplaceHtml`函数来替换特定的HTML标签,以清除它们。`Zxj_ReplaceHtml`函数的实现未在此处给出,但可以假设它是一个用于正则表达式匹配和替换的自定义函数,其可能的工作原理是查找并替换符合特定模式(HTML标签)的字符串。 以下是`ClearHtml`方法中去除的HTML标签列表: 1. `&#[^>]*;`: 这个模式用于去除HTML实体,例如`&`,`<`等。 2. `<marquee>...</marquee>`: 去除滚动文本标签。 3. `<object>...</object>`: 去除对象标签,通常用于嵌入多媒体内容。 4. `<param>...</param>`: 去除对象标签内的参数。 5. `<embed>...</embed>`: 去除内联插件标签。 6. `<table>...</table>`: 去除表格标签及其内容。 7. `<tr>...</tr>`: 去除表格行标签。 8. `<th>...</th>`: 去除表头单元格标签。 9. `<p>...</p>`: 去除段落标签。 10. `<a>...</a>`: 去除超链接标签。 11. `<img>...</img>`: 去除图像标签。 12. `<tbody>...</tbody>`: 去除表格体标签。 13. `<li>...</li>`: 去除列表项标签。 14. `<span>...</span>`: 去除用于文本格式化的span标签。 15. `<div>...</div>`: 去除分部标签,常用于布局。 16. `<th>...</th>`: 再次去除表头单元格标签(可能是遗漏或重复)。 这个方法主要适用于那些不包含复杂嵌套结构的HTML片段。对于更复杂的HTML文档,可能需要使用更强大的库,如HTML Agility Pack或AngleSharp,这些库能够解析整个DOM树,并提供更精确的控制来选择和删除元素。 在实际应用中,为了获得最佳效果,你可能需要根据具体需求调整这个方法,例如,添加更多常见的HTML标签到替换列表中,或者使用更复杂的正则表达式来处理特殊情况。此外,如果HTML结构较复杂,还应考虑处理嵌套标签、属性和其他特殊字符,以确保得到干净的纯文本。
/// 清除文本中Html的标签
/// </summary>
/// <param name="Content"></param>
/// <returns></returns>
protected string ClearHtml(string Content)
{
Content = Zxj_ReplaceHtml("&#[^>]*;", "", Content);
Content = Zxj_ReplaceHtml("</?marquee[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?object[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?param[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?embed[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?table[^>]*>", "", Content);
Content = Zxj_ReplaceHtml(" ", "", Content);
Content = Zxj_ReplaceHtml("</?tr[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?th[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?p[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?a[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?img[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?tbody[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?li[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?span[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?div[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?th[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?td[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("</?script[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("(javascript|jscript|vbscript|vbs):", "", Content);
Content = Zxj_ReplaceHtml("on(mouse|exit|error|click|key)", "", Content);
Content = Zxj_ReplaceHtml("<\\?xml[^>]*>", "", Content);
Content = Zxj_ReplaceHtml("<\\/?[a-z]+:[^>]*>", "", Content);
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展